Webサイトから生成された請求書の印刷プレビューを確認するにはどうすればよいですか。スクリプトで印刷する場合
<a href="javascript:window.print()">print this page</a>
印刷物では「このページを印刷する」も印刷されています。どうすれば非表示にできますか?
個別の 印刷スタイルシート を作成して、サイトが印刷でどのように表示されるかを一般的に制御できます。印刷する前に、この特別な印刷スタイルシートを使用してサイトをユーザーに表示できます。ただし、ブラウザごとに処理が少し異なるため、100%のプレビューは得られません。実際に印刷されるまで、どのように印刷されるかはわかりません。ただし、印刷スタイルシートを使用すると、かなり近づきます。
一部のオペレーティングシステムとプリンタードライバーは、[印刷]ボタンを押してから実際に印刷するまでの間にユーザーにプレビューを提供しますが、それはユーザーが制御できるものではなく、常に利用できることが保証されています。
ブラウザは、ブラウザの印刷プレビュー機能をトリガーするAPIを提供していません。
幸いなことに、ほとんどすべてが通常の場所([ファイル]メニューからぶら下がっている)に保持されているため、ユーザーの注意を引く必要はありません。
驚いたことに、まだ誰も対処していません
Webサイトから生成された請求書の印刷プレビューを確認するにはどうすればよいですか
質問。私はちょうど同様の機能が必要で、 Firebugで印刷メディアCSSを表示する方法は? で解決策を思いつきました。
Window.print()を呼び出すことにより、現在のページを印刷することができます。例えば:
<a href="JavaScript:window.print();">Print this page</a>
印刷されたように見えることを彼らに伝えたい場合は、 このページ のスクリプトを使用して、ページが印刷される方法の疑似プレビューを提供できます。
これは私が使用したものです:
printPage(evt: any) {
// add this 'noprint' class to elements you want to hide from printing
let hideElements = document.getElementsByClassName('noprint');
let arr = Array.prototype.slice.call(hideElements)
arr.map(val => {
val.style.visibility = 'hidden';
})
let w = window.open();
// 'main' is the section I want to print
w.document.write(document.getElementById('main').innerHTML);
w.print();
w.close();
arr.map(val => {
val.style.visibility = 'visible';
})
}
質問に直接答えるために、Browser print()メソッドを呼び出すと、ページがそのまま印刷されます。別のバージョンのページを印刷する場合(たとえば、「このページを印刷」要素なしで)、それらを含まない別の印刷可能なバージョンのページを作成する必要があります(通常は別のスタイルシートを使用して行われます)。印刷ページに不要な要素。
印刷時にリンクを非表示にするには、次のようにします。
<style type="text/css" media="print">
.printlink
{
display:none;
}
</style>
<a href="javascript:windows.print()" class="printlink">print this page</a>
または:
<a href="javascript:windows.print()"
onclick="this.style.display='none';"
class="printlink">
print this page
</a>
印刷をキャンセルした後、これは再表示されませんが。