一尘不染

直接从JavaScript打印PDF

javascript

我正在建立HTML格式的PDF清单。在列表中,我想包含一个下载链接和一个打印按钮/链接。有什么方法可以直接打开PDF的“打印”对话框,而无需用户查看PDF或打开PDF查看器?

将PDF下载到隐藏的iframe中并触发使用JavaScript进行打印,这有一些变化吗?


阅读 1463

收藏
2020-04-25

共1个答案

一尘不染

根据以下评论,它不再可在现代浏览器中使用。
该问题演示了一种可能对您有所帮助的方法:静默打印嵌入式PDF

它使用<embed>标签将PDF嵌入文档中:

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

然后,.print()在加载PDF时,在Javascript中的元素上调用方法:

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中,然后从那里进行打印,从而获得无缝的体验。

2020-04-25