首页 > 解决方案 > Chrome 77 不能自动打印 PDF

问题描述

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 客户端自动触发打印对话框?

标签: google-chromepdfprinting

解决方案


好,朋友们。我遇到了同样的问题,自动打印 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();
        }
    })
}

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

干杯!


推荐阅读