Ril*_*ark 8 html css printing formatting
我有快速的打印介质分页功能page-break-after: always.我使用这些来分隔单个批量打印作业中的多个报表.不幸的是,当打印作业是双面的时,分页可能导致打印机在上一个报告的背面开始报告.
有没有办法强制分页到一个偶数页面?或者,或者,要检测某个元素将出现在哪个页码上?
标准中有CSS功能.你走在正确的轨道上.使用:
<div style="page-break-after: right">
-- your content --
</div>
Run Code Online (Sandbox Code Playgroud)
问题是,目前唯一支持这种情况的主要浏览器是Opera.尽管Opera有自己的挑战问题,但它可能适用于您的情况.
CSS 中没有为此提供内置功能。
一个想法:
您可以尝试将每个报告包装在一个 div 中,然后使用 jquery 之类的东西计算出div 的高度,以确定它是否以奇数页结束。
如果它以奇数页结尾,则在其后的 page-break-after 类中注入一个空的 div,以便它提供到下一页。
编辑
显然,只有当您知道页面在目标打印机上打印的 dpi 时,这才会真正起作用。没有适用于所有情况的神奇答案。
您需要在这里用标准打印机设置进行一些试验,看看什么适合您/您的客户。如果有多个场景,您可以让他们从下拉列表中进行选择。
因此,您可以使用 jquery 检查 div 的像素高度,对照页面的像素高度检查 div 是否在奇数页或偶数页上结束 - 然后如果报表在奇数页上结束则注入分页符。
您还需要预先了解用户是否将使用双面打印 - 因为您只需要为双面打印执行此操作。