pdf.js - create basic pdf files in the browser and node.js
demo - this uses
dataURIs
and they kinda suck. the
node.js
version is better.
/* create the PDF document */ var doc = new pdf(); doc.text(20, 20, 'hello, I am PDF.'); doc.text(20, 30, 'i was created in the browser using javascript.'); doc.text(20, 40, 'i can also be created from node.js'); /* optional - set properties on the document */ doc.setProperties({ title: 'A sample document created by pdf.js', subject: 'PDFs are kinda cool, i guess', author: 'Marak Squires', keywords: 'pdf.js, javascript, Marak, Marak Squires', creator: 'pdf.js' }); doc.addPage(); doc.setFontSize(22); doc.text(20, 20, 'This is a title'); doc.setFontSize(16); doc.text(20, 30, 'This is some normal sized text underneath.'); var fileName = "testFile"+new Date().getSeconds()+".pdf"; var pdfAsDataURI = doc.output('datauri', {"fileName":fileName}); /* inject the pdf into the browser */ // inject using an iframe // this seems to work in FF but not Chrome? try testing some more on your own >.< //$('#theFrame').attr('src',pdfAsDataURI); // inject using an object tag // doesnt really work but it does something interesting //$('body').append('
'); // inject changing document.location // doesn't work in FF, kinda works in Chrome. this method is a bit brutal as the user sees a huge URL // document.location = pdfAsDataURI; // create a link // this seems to always work, except clicking the link destroys my FF instantly $('#pdfLink').html('
'+fileName+'
right click and save file as pdf