智能HTML页面分页

5
我制作HTML报告并打印(或PDF),希望实现智能分页。我想避免标题在一页上,而段落在下一页的情况。在这种情况下,下一页应该以标题开始。
我尝试过使用page-break-after:avoid,但没有成功。我不明白为什么会这样。如果我尝试使用page-break-after:always,它可以工作。所以我猜测避免函数并不是很好用。我总是使用IE8。
是否有任何脚本方式来计算页面断点位置?如果有,我只需要在那个位置上使用page-break-after:always
谢谢! /Georg
2个回答

1

这个类只是一个提示。只有在可以避免的情况下才会避免分页。如果避免分页会导致结果被裁剪,那么最终仍会插入分页符。

我认为不可能计算出页面分页的位置,因为它取决于许多变量,包括打印机边距和纸张大小,这些变量在 CSS 和 JavaScript 中都无法访问。


那正是我所猜测的。我正在使用ASP.NET创建HTML,所以也许我可以使用ASP.NET计算内容的高度?我还有一些具有HTML地址的图像,因此我还需要知道它们的高度。我知道纸张大小和边距。我也知道所有字体和字号。你认为这可能吗? - ahrberg
我认为不行。你可能会非常接近,但总会存在这些微小的差异。并非每个渲染器都能以完全相同的宽度呈现字体。整行文字中的一个像素差异可能会导致一个单词跳到下一行,从而移动整个页面。这将是大量的工作,而且你永远无法做到完美。最好问问自己为什么在那个点上不要有断点很重要。也许你可以在所有需要分页的页面中添加 page-break-after: auto - GolezTrol

0

我使用了TCPDF(http://www.tcpdf.org/)来做类似的事情。由于它打印的是表格数据,所以很容易将页面断点放在正确的位置上,我可以进行行计数。

你可以尝试使用字符计数,但不会像行计数那样准确。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接