查找浏览器在打印时插入分页符的位置



我正试图弄清楚浏览器,特别是firefox或chrome,在打印或打印预览HTML文档时会在哪里插入分页符。现在我不想避免休息,也不想定义休息的确切位置。我知道CSS 2.1和CSS 3.0中定义的分页符-*元素。我真的想弄清楚当前页面上的最后一个元素和下一页上的第一个元素,并将它们与实际的HTML代码联系起来。

据我所知,没有我可以注册的事件或信号。接下来我想到的是修补webkit或gecko,并添加一个自定义信号/事件。但是,只有当分页符代码不分散在太多的文件和成员中时,这才有可能。

我并不是在要求一个完整的解决方案,而是任何关于如何实现这一点的想法或暗示。

提前感谢您的任何建议和想法:)

UPDATE:我需要通过编程来计算分页符的位置,因为我想根据结果修改和操作原始HTML文件。

您到底想实现什么?您可以根据分页符以及是否只使用带有媒体查询的CSS打印页面来设置页面样式。

如果CSS对于您的用例来说还不够,那么修补渲染器是一个合适的解决方案:在Gecko上,您可以为AddPageBreakItem的调用grep nsCSSFrameConstructor.cpp,然后找出它在哪里插入中断。分页的nsPresContext表示这是一个用于打印或打印预览的框架。查找对nsPresContext::IsPaginated和nsPresContext::IsRootPaginatedDocument的调用。

最新更新