Chrome 77无法自动打印PDF文件

7
Chrome 77已停止支持在PDF中嵌入的print() JS代码来启动/打开打印对话框。例如,在Firefox、Chrome 76或Acrobat中打开以下文件,您将看到打印对话框出现。但在Chrome 77中,它不再出现。具体而言,在我的情况下以及我测试过的其他三台计算机上,版本为77.0.3865.75。

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

这是一个新的设置,我们可以进行调整/修改,还是一个永久性的破坏性变化,将防止我们为Chrome客户端自动触发打印对话框?
4个回答

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();
        }
    })
}

这段代码需要jQuery,但是你可以轻松地将其适应到你想要的任何js语言。

干杯!


我也遇到了Chrome 77版本中的打印问题。使用以下代码进行打印功能:pdfStamper.addJavaScript("this.print({bUI: true,bSilent:false,bShrinkToFit: true});");希望有人能帮忙解决这个问题。 - Arunprasath
应该是 window.frames[id].contentWindow.print();。我不确定 focus() 是否必要,在我的应用程序中没有问题。谢谢你的回答! - But those new buttons though..

4

4
他们刚刚破坏了大部分基于网络的POS系统。 - Craig

1

-1

为什么这个答案被踩了?它提供了一种完全合法的替代方案/解决方法,可以从Web浏览器打印PDF。 - zeldi

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接