当前位置:  开发笔记 > 编程语言 > 正文

如何在打印大型HTML表时处理分页符

如何解决《如何在打印大型HTML表时处理分页符》经验,为你挑选了5个好方法。

我有一个项目,需要打印一个包含许多行的HTML表.

我的问题是表格在多页上打印的方式.它有时会减少一半,使其无法读取,因为一半位于页面的边缘,其余部分打印在下一页的顶部.

我能想到的唯一合理的解决方案是使用堆叠的DIV而不是表格,并在需要时强制分页.但在完成整个更改之前,我认为我之前可以问过这个问题.



1> Sinan Ünür..:




Test



    
heading
notes
x
x
x


这在WebKit浏览器中也失败了(例如Safari和Chrome)
CSS 2.1规范指出分页符样式属性仅应用于块级元素.表行的默认显示模式是表行.不幸的是,默认情况下,没有表元素是块级元素,包括表本身.
我可以确认这在Chrome或任何其他Webkit浏览器(例如Safari,Opera)中都不能正常工作 - 除非"工作正常"表示"排除任何被认为是可选的功能".我认为大多数人想要的是运行页眉和页脚,以及只允许行之间分页的表,截至2015/11/13,这两个表都没有在Webkit中实现.
虽然这是符合标准的方法,但目前实现该标准的唯一浏览器是Opera.请注意,这是css2的一部分,因此缺乏实施可能会在未来一段时间内成为问题,因为显然没有人关心.
@SinanÜnür这不是一个要求,所以你不能依赖它,不幸的是,从我的测试中我可以看到webkit看到"可能"而忽略了它之外的任何东西.奇怪的是,IE有一些相当不错的大表打印支持.从来没有想过我会在任何一点上赞美它.

2> Josh P..:

注意:使用page-break-after时:总是对于标记,它会在表的最后一位之后创建一个分页符,每次最后创建一个完全空白的页面!要解决这个问题,只需将其更改为page-break-after:auto即可.它会正确破坏而不会创建额外的空白页面.







....




3> vicenteherre..:

从SinanÜnür解决方案扩展:





Test



    
heading
notes
Long
cell
should'nt
be
cut
Long
cell
should'nt
be
cut
x

似乎page-break-inside:avoid在某些浏览器中仅考虑块元素,而不是单元格,表格,行也不考虑内联块.

如果您尝试display:blockTR代码,并使用那里page-break-inside:avoid,它的工作原理,但与你的表格布局弄乱左右.


这是使用jquery动态添加div的简单方法:`$(document).ready(function(){$("table tbody th,table tbody td").wrapInner("
"); });`

4> MDave..:

这里没有任何答案适用于Chrome.GitHub上的AAverin已经为此创建了一些有用的Javascript,这对我有用:

只需将js添加到您的代码中,并将类"splitForPrint"添加到您的表中,它将整齐地将表拆分为多个页面,并将表头添加到每个页面.



5> marcgg..:

使用这些CSS属性:

page-break-after

page-break-before 

例如:







....


通过


在chrome中不起作用。应用于TR时将被忽略,就像6/13/2012
推荐阅读
重庆制造漫画社
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有