【问题标题】:Cross-browser solution for printing a PDF that's encoded as a data URL用于打印编码为数据 URL 的 PDF 的跨浏览器解决方案
【发布时间】:2021-04-10 14:55:17
【问题描述】:

在 Firefox 上,const printWindow = window.open(pdfDataUrl) 会打开一个新窗口,其中包含已加载并准备打印的 PDF。但是,使用printWindow.print() 跟踪它并没有等待足够长的时间让 PDF 在打印前准备好,并且printWindow.onload = printWindow.print 由于某种原因永远不会触发。

在 Chrome 上,const printWindow = window.open(pdfDataUrl) 不起作用。对其他 Stack Overflow 问题的回答建议将数据 URL 包装在 iframe 中。这行得通,但随后调用iframeElement.contentWindow.print() 什么也没做。作为一种潜在的解决方法,用户可以右键单击框架内容并单击打印。

这个问题有跨浏览器的解决方案吗?

【问题讨论】:

    标签: javascript google-chrome pdf printing


    【解决方案1】:

    PrintJS 应该可以工作。它是一个用于在 html 中打印的库。尝试使用:

    PrintJS({printable: /*Add dataURL here*/, type: 'pdf', base64: true})
    

    <script src='https://printjs-4de6.kxcdn.com/print.min.js'></script> 添加到您的 HTML 之后。

    【讨论】:

      猜你喜欢
      • 2014-04-26
      • 1970-01-01
      • 1970-01-01
      • 2016-03-31
      • 2014-05-03
      • 2011-07-13
      • 2015-07-04
      • 2011-03-05
      • 2016-05-30
      相关资源
      最近更新 更多