-1

別々に印刷したい3つのdivを含むページがあります-そしてそれを手動で行うことができます。ただし、Webアプリはサイレント印刷でChromeを実行しているため、これらの3つのdivを3つの別々の印刷ジョブで印刷する必要があります。印刷スタイルシートは私が必要としているものではありません-3つの別々の印刷ジョブが必要です...

したがって、window.print()を複数回トリガーする必要があります。私が思いついた最善かつ唯一の解決策は、次のように、印刷機能を3回トリガーすることです。

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

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

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

ただし、somethimesChromeは関数を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

print 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 に答える