【问题标题】:Even page-break for double-sided printing in HTML & CSS用于 HTML 和 CSS 中的双面打印的甚至分页符
【发布时间】:2011-11-22 16:38:09
【问题描述】:

我已经通过快速page-break-after: always 为印刷媒体工作了分页符。我使用它们在单个批处理打印作业中分隔多个报告。不幸的是,当打印作业是双面打印时,分页符会导致打印机在前一个报告的背面开始一个报告。

有没有办法强制分页到偶数页?或者,检测某个元素将出现在哪个页码上?

【问题讨论】:

    标签: html css printing formatting


    【解决方案1】:

    标准中有 CSS 功能。你在正确的轨道上。使用:

    <div style="page-break-after: right">
    -- your content --
    </div>
    

    问题是,目前唯一支持此功能的主要浏览器是 Opera。虽然 Opera 在打印方面有其自己的挑剔问题,但它可能适用于您的情况。

    【讨论】:

    • 不需要像style="page-break-after: right"这样写吗?
    • style="page-break-after: right" 或 "break-after: right" 不适用于现代浏览器
    【解决方案2】:

    CSS 中没有内置功能。

    一个想法:
    您可以尝试将每个报告包装在一个 div 中,然后使用 jquery 之类的东西来计算 div 的 height 以确定它是否以奇数页结尾。

    如果它在一个奇数页面上结束,则在此之后用你的 page-break-after 类注入一个空 div,以便它进入下一页。

    编辑
    显然,这只有在您知道您的页面在目标打印机上打印的 dpi 时才会真正起作用。没有适用于所有场景的神奇答案。

    • 72 dpi(网络)= 595 X 842 像素
    • 300 dpi(打印)= 2480 X 3508 像素 (“210mm X 297mm @ 300 dpi”)
    • 600 dpi(打印)= 4960 X 7016 像素

    您需要在此处使用标准打印机设置进行一些试验,以了解适合您/您的客户的设置。如果有多个场景,您可以让他们从下拉列表中进行选择。

    因此,您将使用 jquery 检查 div 的像素高度,将其与页面的像素高度进行检查,以查看 div 是否以奇数页或偶数页结束 - 如果报告结束于,则注入分页符一个奇怪的页面。

    您还需要预先知道用户是否将使用双面打印 - 因为您只需要为双面打印执行此操作。

    【讨论】:

    • 有趣的想法 - 有没有办法知道(或设置)页面的高度?
    • @RileyLark,我已经编辑了我的回复,上面给你一些信息。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-02
    • 2011-11-01
    • 2011-06-06
    • 2016-07-20
    相关资源
    最近更新 更多