【发布时间】:2011-11-22 16:38:09
【问题描述】:
我已经通过快速page-break-after: always 为印刷媒体工作了分页符。我使用它们在单个批处理打印作业中分隔多个报告。不幸的是,当打印作业是双面打印时,分页符会导致打印机在前一个报告的背面开始一个报告。
有没有办法强制分页到偶数页?或者,检测某个元素将出现在哪个页码上?
【问题讨论】:
标签: html css printing formatting
我已经通过快速page-break-after: always 为印刷媒体工作了分页符。我使用它们在单个批处理打印作业中分隔多个报告。不幸的是,当打印作业是双面打印时,分页符会导致打印机在前一个报告的背面开始一个报告。
有没有办法强制分页到偶数页?或者,检测某个元素将出现在哪个页码上?
【问题讨论】:
标签: html css printing formatting
标准中有 CSS 功能。你在正确的轨道上。使用:
<div style="page-break-after: right">
-- your content --
</div>
问题是,目前唯一支持此功能的主要浏览器是 Opera。虽然 Opera 在打印方面有其自己的挑剔问题,但它可能适用于您的情况。
【讨论】:
style="page-break-after: right"这样写吗?
CSS 中没有内置功能。
一个想法:
您可以尝试将每个报告包装在一个 div 中,然后使用 jquery 之类的东西来计算 div 的 height 以确定它是否以奇数页结尾。
如果它在一个奇数页面上结束,则在此之后用你的 page-break-after 类注入一个空 div,以便它进入下一页。
编辑
显然,这只有在您知道您的页面在目标打印机上打印的 dpi 时才会真正起作用。没有适用于所有场景的神奇答案。
您需要在此处使用标准打印机设置进行一些试验,以了解适合您/您的客户的设置。如果有多个场景,您可以让他们从下拉列表中进行选择。
因此,您将使用 jquery 检查 div 的像素高度,将其与页面的像素高度进行检查,以查看 div 是否以奇数页或偶数页结束 - 如果报告结束于,则注入分页符一个奇怪的页面。
您还需要预先知道用户是否将使用双面打印 - 因为您只需要为双面打印执行此操作。
【讨论】: