-1

我有一个页面,其中包含我想单独打印的 3 个 div - 我可以手动完成。但是,该 web 应用程序正在运行带有静默打印的 Chrome,我需要在 3 个单独的打印作业中打印这 3 个 div。打印样式表不是我需要的 - 需要 3 个单独的打印作业...

所以我需要多次触发 window.print() 。我想出的最好也是唯一的解决方案是触发我的打印功能 3 次,如下所示:

setTimeout(function() { printContent('print1', 'letter'); }, 0);

setTimeout(function() { printContent('print2', 'letter'); }, 1);

setTimeout(function() { printContent('print3', 'letter'); }, 2);

但是,有时 Chrome 无法运行该功能 3 次。如何确保该功能连续 3 次正确触发?

如果有人觉得这很有趣,我的 printContent() 函数是这样的:

function printContent(divContent, divClass) {
    var divContent = $('#' + divContent).html();
    $('#print-spooler-box').html('').addClass(divClass).html(divContent);
    window.print();
    $('#print-spooler-box').removeClass(divClass);
}
4

1 回答 1

2

您可以通过编辑打印 CSS 来避免多次打印。

您可以使用媒体查询或media属性(在<link>元素中)来定位打印样式。

<div class="new-page">
  <p>page one</p>
</div>
<div class="new-page">
  <p>page two</p>
</div>

然后在你的 CSS 中:

.new-page{
  page-break-before: always;
}
于 2012-11-27T21:51:51.707 回答