所以,我动态创建了一个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然后再按下另一个按钮)。
答案 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');