Print a pdf created with jsPDF in all browsers

Charles picture Charles · Feb 3, 2016 · Viewed 12.9k times · Source

So, I have dynamically created a pdf, and now i want to print it:

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...

So, how do I take this doc variable and print it. Everywhere else I found uses the url of the pdf. Do I need to create a url for it first?

So, the solution I am currently going with is to show the pdf in a new tab/window, from which the pdf can be printed.

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

Unfortunately, this only works in Chrome. Anyone know how to get it working in IE, Firefox, Safari, etc.?

I still wonder if there is a way to skip this step (of opening the pdf and then requiring another button to be pushed).

Answer

Charles picture Charles · Feb 11, 2016

So, in conclusion, for Chrome and Safari, use

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

but for IE and Firefox, use

doc.save();

These will both allow you to open the pdf in a new window, from which it can be printed. For those who have taken the time to figure out what is necessary on other browsers, feel free to add your research here...