1. ホーム
  2. javascript

[解決済み] JavaScriptから直接PDFを印刷する

2022-03-10 10:24:05

質問

HTMLでPDFのリストを作っています。このリストには、ダウンロードリンクと印刷ボタン/リンクを含めたいと思います。ユーザーがPDFを見たり、PDFビューアを開いたりすることなく、PDFの印刷ダイアログを直接開く方法はないでしょうか?

PDFを隠しiframeにダウンロードし、JavaScriptで印刷するようにトリガーするいくつかのバリエーションがありますか?

解決方法は?

以下のコメントから、モダンブラウザでは動作しなくなりました。
この質問は、あなたにとって役に立つかもしれないアプローチを示しています。 埋め込まれたPDFを無音で印刷する

を使用しています。 <embed> タグを使用して、PDFを文書に埋め込むことができます。

<embed
    type="application/pdf"
    src="path_to_pdf_document.pdf"
    id="pdfDocument"
    width="100%"
    height="100%" />

そして .print() メソッドを使用します。

function printDocument(documentId) {
    var doc = document.getElementById(documentId);

    //Wait until PDF is ready to print    
    if (typeof doc.print === 'undefined') {    
        setTimeout(function(){printDocument(documentId);}, 1000);
    } else {
        doc.print();
    }
}

埋め込みを隠しiframeに置き、そこから印刷すれば、シームレスな体験ができます。