埋め込まれたPDFをサイレントプリントします
-
13-09-2019 - |
質問
埋め込まれたPDFを備えたWebページがあります。私のコードは次のようになります:
<embed
type="application/pdf"
src="path_to_pdf_document.pdf"
id="pdfDocument"
width="100%"
height="100%">
</embed>
私は私のpdfを印刷するためにこのJavaScriptコードを持っています:
function printDocument(documentId) {
//Wait until PDF is ready to print
if (typeof document.getElementById(documentId).print == 'undefined') {
setTimeout(function(){printDocument(documentId);}, 1000);
} else {
var x = document.getElementById(documentId);
x.print();
}
}
このコードが実行されると、Acrobatプラグインは有名な印刷ダイアログを開きます。このようなもの:
2つの質問:
- PDFがロードされ、印刷の準備ができていることを検出する方法を改善する方法は?
- 印刷ダイアログの表示を避ける方法は?
私のシステムに関するもう少し情報:
OS: Windows XP
ブラウザ: インターネットエクスプローラー7
PDFプラグイン: Acrobat Reader 9
解決
あなたは、普通の古いJavaScriptで静かに印刷することはできません。プリンターに、100000000ページのオールブラックの印刷を開始するにはどうすればよいですか。良いことではありません。静かに印刷して、Internet Explorerのみで機能させたい場合は、それを行うことができるActiveXコントロールがあります。これには、ページとユーザーがサイトを本当に信頼するために、より高いセキュリティ設定が必要です。
他のヒント
これは、信頼できるイントラネット環境で可能です。
<object id="pdfDoc" style="position:absolute;z-index:-1;" name="pdfDoc" classid="clsid:CA8A9780-280D-11CF-A24D-444553540000" width="900px" height="100%">
<param name="SRC" value="yourdoc.pdf" />
</object>
<input type="button" ... onclick="pdfDoc.printAll();" />
これにより、印刷ダイアログをバイパスし、デフォルトのプリンターに直接送信します。
印刷する前に実際に待つ必要があるのだろうか?そして、私は本当に、その確認ダイアログなしであなた(またはそのことのためのWebサイト)が印刷できるようにすることを本当に望んでいます(長い間、それを行うために使用されていた古いブラウザもあります)。
これを変更することでFirefoxでこれを行うことができます about:config
. 。追加 print.always_print_silent
そしてそれを設定します true
.
所属していません StackOverflow