Chrome 77无法自动打印PDF

for*_*mid 7 printing pdf google-chrome

Chrome 77已停止尊重print()PDF中嵌入的JS,以在加载PDF后启动/打开打印对话框。

例如,在Firefox,Chrome 76或Acrobat中打开以下文件,您会看到出现打印对话框。在Chrome 77中不再显示。具体地说,在我的情况下以及在其他三台计算机上,我在版本77.0.3865.75上对此进行了测试。

https://cdn.dealrcloud.com/assets/test/Invoice-1003.pdf

这是我们可以调整/修改的新设置,还是一项永久性的重大更改,将阻止我们为Chrome客户端自动触发打印对话框?

小智 6

好,朋友们。我遇到了同样的问题,自动打印 pdf 功能在多台笔记本电脑上不起作用。此功能对我们的几个项目非常重要,因此我认为 Chrome 77 的此解决方法也可能对社区非常有帮助:

var loadPDFAndPrint = function (id, url) {
    $("#"+id).remove();
    $("<iframe id='"+id+"' name='"+id+"'>")
        .hide()
        .attr("src", url)
        .appendTo("body");
    $("#"+id).on("load", function(){
        function getChromeVersion () {
            var raw = navigator.userAgent.match(/Chrom(e|ium)\/([0-9]+)\./); 
            return raw ? parseInt(raw[2], 10) : false;
        }
        if (getChromeVersion() >= 77) {
            window.frames[id].focus();
            window.frames[id].print();
        }
    })
}
Run Code Online (Sandbox Code Playgroud)

此代码需要 jQuery,但您可以轻松地将其调整为您想要的任何 js 风格。

干杯!


Jos*_*Lee 4

这是故意删除的。

仅允许 print() 响应用户手势

https://pdfium.googlesource.com/pdfium.git/+/2021804f1b414c97667c03d7ab19daf66f6a19ef

问题在于 PDF 文件中嵌入的 JavaScript 不遵守嵌入页面的内容安全策略。https://crbug.com/968914

  • 他们刚刚破坏了大部分基于网络的 POS 系统。 (4认同)