在所有浏览器中打印使用 jsPDF 创建的 pdf
Print a pdf created with jsPDF in all browsers
所以,我已经动态创建了一个 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 的 url。我需要先为它创建一个 url 吗?
因此,我目前采用的解决方案是在新 tab/window 中显示 pdf,从中可以打印 pdf。
window.open(doc.output('datauristring'));
不幸的是,这只适用于 Chrome。有人知道如何让它在 IE、Firefox、Safari 等中运行吗?
我仍然想知道是否有办法跳过这一步(打开 pdf 然后需要按下另一个按钮)。
你只需要添加这个
doc.save('Test.pdf');
(我想你已经在用户点击获取 pdf 的按钮触发器中包含了上面所有的书面代码)
因此,总而言之,对于 Chrome 和 Safari,请使用
window.open(doc.output('datauristring'));
但对于 IE 和 Firefox,请使用
doc.save();
它们都允许您在新的 window 中打开 pdf,从中可以打印它。对于那些花时间弄清楚在其他浏览器上需要什么的人,请随时在此处添加您的研究...
试试这个:
window.open(doc.output('bloburl'), '_blank');
adblock 有时会出现问题。
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');
你最好从 npm 实现“printjs”,将 jspdf 文档转换为 blob 并像这样打印它
const data = PDF.output('blob')
const blobUrl = URL.createObjectURL(data);
printJS(blobUrl);
所以,我已经动态创建了一个 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 的 url。我需要先为它创建一个 url 吗?
因此,我目前采用的解决方案是在新 tab/window 中显示 pdf,从中可以打印 pdf。
window.open(doc.output('datauristring'));
不幸的是,这只适用于 Chrome。有人知道如何让它在 IE、Firefox、Safari 等中运行吗?
我仍然想知道是否有办法跳过这一步(打开 pdf 然后需要按下另一个按钮)。
你只需要添加这个
doc.save('Test.pdf');
(我想你已经在用户点击获取 pdf 的按钮触发器中包含了上面所有的书面代码)
因此,总而言之,对于 Chrome 和 Safari,请使用
window.open(doc.output('datauristring'));
但对于 IE 和 Firefox,请使用
doc.save();
它们都允许您在新的 window 中打开 pdf,从中可以打印它。对于那些花时间弄清楚在其他浏览器上需要什么的人,请随时在此处添加您的研究...
试试这个:
window.open(doc.output('bloburl'), '_blank');
adblock 有时会出现问题。
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');
你最好从 npm 实现“printjs”,将 jspdf 文档转换为 blob 并像这样打印它
const data = PDF.output('blob')
const blobUrl = URL.createObjectURL(data);
printJS(blobUrl);