node.jsexpresspdf-generation

HTML to PDF with Node.js


I'm looking to create a printable pdf version of my website webpages. Something like express.render() only render the page as pdf

Does anyone know a node module that does that ?

If not, how would you go about implementing one ? I've seen some methods talk about using headless browser like phantom.js, but not sure whats the flow.


Solution

  • Extending upon Mustafa's answer.

    A) Install http://phantomjs.org/ and then

    B) install the phantom node module https://github.com/amir20/phantomjs-node

    enter image description here

    C) Here is an example of rendering a pdf

    var phantom = require('phantom');   
    
    phantom.create().then(function(ph) {
        ph.createPage().then(function(page) {
            page.open("http://www.google.com").then(function(status) {
                page.render('google.pdf').then(function() {
                    console.log('Page Rendered');
                    ph.exit();
                });
            });
        });
    });
    

    Output of the PDF:

    enter image description here

    EDIT: Silent printing that PDF

    java -jar pdfbox-app-2.0.2.jar PrintPDF -silentPrint C:\print_mypdf.pdf