在所有浏览器中打印使用jsPDF创建的pdf

时间:2016-02-03 19:40:54

标签: javascript pdf jspdf

所以,我动态创建了一个pdf,现在我要打印它:

var doc = new jsPDF();
var name = "Doe, John"
doc.setFontType("normal");
doc.setFontSize(12);
doc.text(20,20,'Name: '+ name);

//do something that prints the pdf...

那么,我该如何获取这个doc变量并将其打印出来。我找到的其他任何地方都使用了pdf的网址。我需要先为它创建一个网址吗?

因此,我目前使用的解决方案是在新的标签/窗口中显示pdf,从中可以打印pdf。

window.open(doc.output('datauristring'));

不幸的是,这仅适用于Chrome。任何人都知道如何让它在IE,Firefox,Safari等中运行?

我仍然想知道是否有办法跳过这一步(打开pdf然后再按下另一个按钮)。

4 个答案:

答案 0 :(得分:4)

因此,总而言之,对于Chrome和Safari,请使用

window.open(doc.output('datauristring'));

但是对于IE和Firefox,请使用

doc.save();

这些都允许您在新窗口中打开pdf,可以从中打印。对于那些花时间弄清楚其他浏览器需要什么的人,请随时在此处添加您的研究...

答案 1 :(得分:0)

您只需添加此

即可

doc.save('Test.pdf');

(我猜你已经在按钮触发器中有上述所有代码,用户点击这些代码来获取pdf)

答案 2 :(得分:0)

试试这个:

window.open(doc.output('bloburl'), '_blank');

有时可能会遇到adblock问题。

答案 3 :(得分:0)

jsPDF库提供了一种方法autoPrint()。 您可以如下所示使用它

var doc = new jsPDF();
var name = "Doe, John"
doc.setFontType("normal");
doc.setFontSize(12);
doc.text(20,20,'Name: '+ name);
doc.autoPrint();
//This is a key for printing
doc.output('dataurlnewwindow');