25

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: WindowsXP

ブラウザ: Internet Explorer 7

PDF プラグイン: Acrobat Reader 9

4

4 に答える 4

19

プレーンな古い JavaScript でサイレントに印刷することはできません。プリンターで 100000000 ページのすべての黒の印刷をどのように開始しますか? 良いことではありません。サイレント モードで印刷し、Internet Explorer のみで動作させたい場合は、それを実行できる ActiveX コントロールがあります。これには、ページのセキュリティ設定を強化し、ユーザーがサイトを本当に信頼できるようにする必要があります。

于 2009-06-10T14:06:57.677 に答える
4

これは、信頼できるイントラネット環境で可能です。

<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();" />

これにより、印刷ダイアログがバイパスされ、デフォルトのプリンターに直接送信されます。

于 2011-03-23T19:11:08.000 に答える
1

Firefox でこれを行うには、about:config. に追加print.always_print_silentして設定しtrueます。

于 2010-12-01T20:03:07.097 に答える
1

印刷する前に実際に待つ必要があるのだろうか - 印刷ジョブはそれを処理しないのだろうか? そして、最新のブラウザがあなた(またはその点で言えばウェブサイト)がその確認ダイアログなしで印刷できるようにしないことを心から願っています(一部の古いブラウザはずっと前にそれを行っていました).

于 2009-06-10T13:45:36.550 に答える