Saving web pages as PDFs

Rendering pages is not limited to images; we can also save the rendered page as a PDF document. If we state that the rendering file extension is .pdf, it will save the page as a PDF document; however, it will not automatically create multiple page documents if the page is too large. We need to set the paper properties to make a multipage PDF.

The WebPage object has a paperSize property that we can set before rendering the page to PDF. Let us say, we want to capture the page as PDF with an A4 paper size.

var system = require('system'),
var url = system.args[1];
var saveas = system.args[2];
var page = require('webpage').create();

page.open(url, function(status) {
  if ( status === "success" ) {
    console.log('Saving screenshot as ' + saveas);
    page.paperSize = { format: 'A4', orientation: 'portrait', border: '1cm' };
    page.render('screenshot.' + saveas);
    phantom.exit(0);
  }
});

Upon setting the paper size, PhantomJS will automatically slice the page into multiple pages when captured.

Supported paper size options

Paper format

Legal, Letter, A3, A4, A5, Tabloid

Units

mm, cm, in, px

Orientation

portrait, landscape

We can also set the custom paper sizes using the following settings:

page.paperSize = { width: '8in', height: '11in',border: '15px' };
..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
18.189.31.26