用javascript打印pdf

时间:2013-11-19 23:43:49

标签: javascript pdf printing

我知道有很多关于此的问题,但是我测试了所有问题而不是解决我的问题。我有以下代码:

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时,我尝试了很多东西,但没有任何作用,请帮助我:(

1 个答案:

答案 0 :(得分:0)

哦等一下,我想我知道可能出错了。

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

首先,看看documentation

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

如您所见,第一个参数是strUrl,即新弹出窗口的URL。你给出一个空的论证,这开始并不好。

会发生什么,可能就是这样:

  1. 弹出窗口已创建。
  2. 数据网址传递给弹出窗口。 PDF开始在后台加载。
  3. 出现打印对话框,找到一个空文档(PDF尚未加载),从而打印一个空白页面。
  4. PDF完成加载,此时您可以打印它(在您取消第一个弹出窗口后)。
  5. 所以,而不是这样做:

    popup.document.location.href = datauri;
    

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

    我希望这会有所帮助。