cur*_*ity 5 html browser dom gecko chromium
我试图找出浏览器(特别是 Firefox 或 chrome)在打印或打印预览 HTML 文档时插入分页符的位置。现在我不想避免休息,也不想定义休息的确切位置。我知道 CSS 2.1 和 CSS 3.0 中定义的 page-break-* 元素。我真的很想找出当前页面上的最后一个元素和下一个页面上的第一个元素,并将它们与实际的 HTML 代码相关联。
据我所知,没有我可以注册的事件或信号。我想到的下一件事是修补 webkit 或 gecko 并添加自定义信号/事件。但这只有在分页代码没有分散在太多文件和成员中的情况下才有可能。
我不是在要求一个完整的解决方案,而是任何想法或提示如何实现这一点。
在此先感谢您的任何建议和想法:)
更新:我需要以编程方式找出分页符的位置,因为我想根据结果修改和操作原始 HTML 文件。
您究竟想要实现什么目标?您可以根据分页符以及是否仅使用 CSS 和媒体查询来打印页面来设置页面样式来打印页面来设置页面样式。
如果 CSS 不足以满足您的用例,并且修补渲染器是一个合适的解决方案:在 Gecko 上,您可以 grep nsCSSFrameConstructor.cpp来调用 AddPageBreakItem,然后找出插入分隔符的位置。分页的 nsPresContext 意味着这是一个用于打印或打印预览的框架。查找对 nsPresContext::IsPaginated 和 nsPresContext::IsRootPaginatedDocument 的调用。