質問

埋め込まれた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プラグインは有名な印刷ダイアログを開きます。このようなもの:

PrintDialog

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.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top