怎么利用JCP的自动分页功能 ,打印长表格网页

在web打印中,我们经常需要打印一些长的表格<table>,可能跨好几页,对于这种长表格,用浏览器打印,和JCP的预分页方式(即做若干div,每个div为一页),都不能理想地解决表格分页打印问题。 

如果用浏览器的window.print方法打印,经常会出现在分页处断行,断线现象,如下:

 当然,现在也有print css,但各浏览器厂商对该标准支持程度不一样,在不同的浏览器上打印,可能样式有很大差异。

 能不能将大表格分成多个<table>,然后,用前面所说的方法,把它们放在一个个div页上,再用JCP来打印?

 如果是行高一样的表格,上述方法可行,只需要算出每页合适的行数就行了,但如果类似简历这种表格,有很多的合并单元格,行高不一样,比如,工作经历一行,经历丰富的可以有好几页,刚毕业的可能是空白。这样,就无法知道,该在哪里分页了,如果再考虑有单元格上的段落文字,也需要分页的情况,那就更复杂了。

 JCP针对上述问题,引入了自动分页功能,它可以很好地解决表格分页断线的问题,也可以解决行高不等表格的自动分页,另外,你也可以使用JCP有关分页的加强功能,比如,合并单元格表格分页、大单元格文字分页的问题,表头表尾保留,合计、本页小计等计算。

 JCP即可以对表格元素<table>进行自动分页,也可以对HTML的其它容器对象,比如,<div>、<p><ul>等进行自动分页。

 如果某个div页中的内容,需要自动分页,则只需要在该 div 上,设置控制样式类 breakable即可,如下所示:
 

1.  <script>  

2.     var myDoc = {  

3.      documents : document,   

4.      copyrights : '杰创软件拥有版权  www.jatools.com'   

5.     };  

6.     getJCP().print(myDoc);  

7.  </script>  

8.    

9.  <div id="page1" class="breakable"> 本页内容较多,有可能打印不下,请自动分页之,blablalbla...</div>  

10. <div id="page2" > 不需要自动分页</div>  

11. <div id="page3" class="breakable">请将我自动分页,blablalbla...</div>   

没设置breakable样式类的page div,仍然按预分页方式打印,即如果有一页打印不下的部分,会被截去。 

要自动分页,不需要在myDoc参数中作任何额外设置。 

JCP总是检查 page div上的样式类,有则分之。 

JCP的分页算法,总是尽可能地利用可打印区域:

可打印区域=打印纸张大小-边距-页眉高度-页脚高度

 

 

 

 

 

 

 

 

 

 

 

 

 

  

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值