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' };
18.189.31.26