【问题标题】:Chrome 77 Not Auto-Printing PDFsChrome 77 不能自动打印 PDF
【发布时间】:2020-01-13 15:32:30
【问题描述】:

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

例如,在 Firefox、Chrome 76 或 Acrobat 中打开以下文件,您将看到打印对话框出现。在 Chrome 77 中它不再出现。具体来说,就我而言,我在其他三台计算机上进行了测试,版本为 77.0.3865.75。

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

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

【问题讨论】:

    标签: google-chrome pdf printing


    【解决方案1】:

    好的,伙计们。我遇到了同样的问题,自动打印 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});");任何机构都有助于解决问题。
    • 应该是window.frames[id].contentWindow.print();。我不确定focus() 是否必要。在我的应用程序中,没有它它也可以工作。谢谢你的回答!
    【解决方案2】:

    这是故意删除的。

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

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

    问题在于 PDF 文件中嵌入的 JavaScript 不遵守嵌入页面的 Content-Security-Policy。 https://crbug.com/968914

    【讨论】:

    • 他们刚刚破坏了大多数基于网络的 POS 系统。
    【解决方案3】:

    我在这里评论了这个问题,这就是一切的开始

    https://bugs.chromium.org/p/chromium/issues/detail?id=968914

    【讨论】:

      【解决方案4】:

      Chrome 直接打印已被 WebApp 硬件桥取代。 git仓库在这里:https://github.com/imTigger/webapp-hardware-bridge

      我上周下载了,目前正在测试。

      【讨论】:

      • 为什么这个答案被否决了?它为从 Web 浏览器打印 PDF 提供了完全合法的替代方案/解决方法。
      猜你喜欢
      • 2013-03-02
      • 1970-01-01
      • 2018-02-14
      • 1970-01-01
      • 2015-09-17
      • 2018-09-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多