我有一个页面,其中包含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次正确触发该功能?
如果有人觉得有趣,我的printContent()函数是这样的:
function printContent(divContent, divClass) {
var divContent = $('#' + divContent).html();
$('#print-spooler-box').html('').addClass(divClass).html(divContent);
window.print();
$('#print-spooler-box').removeClass(divClass);
}
答案 0 :(得分: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;
}