2017-01-11 259 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