2011-11-22 62 views
6

我已经有快速分页打印工作的快速page-break-after: always。我使用这些来分离单个批量打印作业中的多个报告。不幸的是,当打印作业是双面打印时,分页符会导致打印机在上一次报告的背面启动报告。即使是在HTML和CSS中双面打印的分页符

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

回答

1

CSS中没有内置的功能。

一个想法:
也许你可以尝试在一个div包裹你的每一个报告,然后使用像jQuery的东西摸出的div height弄清楚它是否奇数页结束。

如果它在一个奇数页面上结束,那么在页面中断类之后注入一个空的div,以便它进入下一页。

编辑
显然,如果你知道DPI这只会真正的工作在你的哪些页面打印你的目标打印机。没有什么神奇的答案可以适用于所有情况。

  • 72 DPI(网络)= 595 X 842像素
  • 300 dpi的(印刷)= 2480 X 3508像素 ( “210毫米X297毫米@ 300 dpi的”)
  • 的600dpi(印刷)= 4960 X 7016像素

你需要在这里用你的标准打印机设置来试验一下,看看对你/你的客户有什么作用。如果有多种情况,您可以让他们从下拉菜单中进行选择。

所以你应该使用jquery来检查div的像素高度,根据页面的像素高度检查它是否在奇数页或偶数页结束 - 然后在报表结束时插入分页符在一个奇怪的页面上。

如果用户将使用双面打印,您还需要了解最新的信息 - 因为您只需要在双面打印时进行此操作。

+0

有趣的想法 - 有没有办法知道(或设置)页面的高度? –

+0

@RileyLark,我编辑了我的回复,上面给你一些信息。 – Nils

5

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

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

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

+6

你不需要像'style =“page-break-after:\”right“那样编写它吗? –