2017-01-11 188 views
0

我有用於創建表格並打印它的數據。該結構是這樣的:用分頁符打印html頁面

標題 數據 總和

標題必須不能在頁面的結束和總決不能以頁開始打印時它。 Thant是爲什麼我使用Divs製作html表格並將所有尺寸都設爲mm。但是當我打破頁面時我無法合謀。不同計算機的高度變化。

這裏是我計算的JavaScript代碼,並打破頁

$(document).ready(function(){ 
     var mydiv ='<div class="page-break"></div>'; 
     var i=0; 
     var h = px2cm($("#myinfo").last().height())*10; 
     var limit=297; 
     var g =0; 

     $('#content div.ptr').each(function(){ 
      g=0; 
      h = h + px2cm($(this).height())*10; 
      var nexth=px2cm($(this).next().height())*10; 
      if(h>=limit-nexth) 
      {    
       if($(this).hasClass("ptrtitle")){ 
        $(this).before(mydiv); 
        h = px2cm($(this).height())*10; 
        i++; 
        g=1; 
       }else{     
        if(String($(this).next().attr("class"))==="ptr ptrsum"){ 
         if($(this).prev().hasClass("ptrtitle")) 
         { 
          $(this).prev().before(mydiv); 
          h = px2cm($(this).height()+$(this).prev().height())*10; 
         }else{ 
          $(this).before(mydiv); 
          h = px2cm($(this).height())*10; 
         } 
         //h=0; 
         i++; 
         g=1; 
        }else{ 
          $(this).after(mydiv); 
          h=0;i++; 
        } 
       } 
      } 
     }); 
    }); 
    function px2cm(px) { 
     var d = $("<div/>").css({ position: 'absolute', top : '-1000cm', left : '-1000cm', height : '1000cm', width : '1000cm' }).appendTo('body'); 
     var px_per_cm = d.height()/1000; 
     d.remove(); 
     return px/px_per_cm; 
    } 

這裏我添加限制= 297(對於A4的高度,它的工作原理在某些計算機上不錯,但不工作好別人)。不工作好意味着,在第一臺計算機上它打印在一頁中40排,但對另一部分行進入下一個打印頁

我怎麼能正常中的所有計算機

+0

你看過CSS屬性page-break-inside?也許你可以將它添加到div並將其設置爲「避免」。 – sol

+0

是的,但我不工作 – user2632703

+0

如果您在jsfiddle或類似的環境中創建了標記的簡單演示,我們可能會更容易提供幫助。 – sol

回答

0

嘗試增加CSS2性質的打印數據page-breakpage-break@media print而不是手動計算分頁符。如果需要,還可以使用特定於print的不同比例。

@media print { 
    .page-break {page-break-after: always;} 
} 
+0

我已經添加了這個類。問題是,在標題之後,總之行div不能中斷,而page-break-after:避免不工作工作divs – user2632703