Trigger window.print()两次或多次

问题描述 投票:-1回答:1

我有一个页面,其中包含3个div,我想分别打印-我可以手动进行打印。但是,该Webapp运行的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);
}
javascript jquery
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;
}

0
投票

您解决了这个问题吗?

我也需要在不同的打印任务作业中打印单独的内容。

感谢

© www.soinside.com 2019 - 2024. All rights reserved.