使用 JavaScript 打印 PDF

print pdf with javascript

本文关键字:PDF 打印 JavaScript 使用      更新时间:2023-09-26

我知道有很多关于这个问题的问题,但我测试了所有内容,并没有解决我的问题。我有以下代码:

var datauri = //PDF in base64
popup = window.open("", "Your PDF","width=1024,height=768,resizable=yes,scrollbars=yes,toolbar=no,location=no,directories=no,status=no,menubar=no,copyhistory=no,id='printPDF'");       
popup.document.location.href = datauri;//show pdf in other page
popup.print();//print pdf

但是,当我打印 PDF 时,页面显示为空,但是当我关闭打印窗口,显示 PDF 时,我尝试了很多东西,但没有任何效果,请帮我:(

,等一下,我想我看到了可能出错的地方。

datauri变量实际上是弹出窗口的 URL。但是你用错了。

首先,看一下文档。

var windowObjectReference = window.open(strUrl, strWindowName[, strWindowFeatures]);

如您所见,第一个参数是 strUrl ,新弹出窗口的 URL。你给出一个空洞的论点,这本来就不好。

发生的事情,可能是这样的:

  1. 弹出窗口随即创建。
  2. 数据 URL 将传递到弹出窗口。PDF 开始在后台加载。
  3. 出现打印对话框,查找空文档(PDF 尚未加载(,从而打印空页面。
  4. PDF 完成加载,此时您可以打印它(在您关闭第一个弹出窗口后(。

因此,与其这样做:

popup.document.location.href = datauri;

您应该将datauri作为第一个参数传递给 window.open ,这是代码片段中的空字符串。

我希望这有所帮助。