打印时防止表中的分页符

McG*_*one 21 css printing

我有一个页面,我正在尝试设置打印.此页面包含大量单个表.这些表的大小各不相同,但一般来说,我每页可以容纳2.5到3个表.我希望能够防止表被分页符破坏.知道我怎么能做到这一点?

我试过这个:

.reportTable {
    page-break-inside: avoid;
}
Run Code Online (Sandbox Code Playgroud)

不幸的是,page-break-insideOpera似乎只支持(根据W3Schools - 我证实这在Firefox 4.0.1中不起作用).

我可以这样做,以便在每个表之前强制分页:

.reportTable {
    page-break-after: always;
}
Run Code Online (Sandbox Code Playgroud)

本工程以插入分页符,似乎在所有的主流浏览器的支持,但它让我与印刷文件吨浪费的空间(大约一半每一页的空白).如果整个下一个表格不适合此页面,我真的只想要一个分页符.

我知道我有用户使用Internet Explorer,Firefox和Safari,所以我真的希望尽可能地支持这些用户.找到一些可以在Chrome和Opera中运行的东西将是一个非常好的奖励.

有任何想法吗?

Aeo*_*ius -9

并非所有打印机都是一样的。

您遇到问题是因为打印机不受 Web 浏览器或 html 代码控制。它由打印机附带的打印机驱动程序控制。此功能(及其设置)属于渲染页面的计算机的所有者,而不是您。

您的代码无法提前知道连接到用户系统的打印机可以在一页上打印多少行,或者打印机将如何布局表格。如果使用不同打印机的用户打开页面将会有所不同。就像不同的屏幕分辨率一样,打印机像素分辨率也不同。

因此,适用于不同屏幕的所有规则(及其缺点)也适用于不同的打印机。您不仅无法知道打印机将在何处断页,甚至无法知道打印的页面有多大,即页面上可以容纳多少内容。

要将所有表格(或多个表格)打印到一页上,用户应选择要打印的部分,然后使用打印机对话框中的“打印选择”。