UNPKG

phantomjs-render-large-page

Version:

PhantomJS can’t render very tall or wide pages (more than 30k pixels). This library is a workaround to do it anyway.

71 lines (43 loc) 2.7 kB
# phantomjs-render-large-page PhantomJS can't render very tall or wide pages (more than 30k pixels). This library is a workaround to do it anyway. ## Installation You need imagemagick installed. In ubuntu, you can install it like this: sudo apt-get update sudo apt-get install imagemagick You may need to change its policy at `/etc/ImageMagick-6/policy.xml`. These are the values that worked for the tests: <policy domain="resource" name="memory" value="4096MiB"/> <policy domain="resource" name="map" value="4096MiB"/> <policy domain="resource" name="width" value="128KP"/> <policy domain="resource" name="height" value="128KP"/> <policy domain="resource" name="area" value="1024MB"/> <policy domain="resource" name="disk" value="8GiB"/> Windows is not supported. Then npm install phantomjs-render-large-page --save ## Usage Include it like this: var renderLargePage = require('phantomjs-render-large-page').renderLargePage; in you PhantomJS script. `renderLargePage` is a phantomjs script that expects to be included from inside a phantomjs script, not called directly. For example: //screenshot.js var renderLargePage = require('phantomjs-render-large-page').renderLargePage; var page = require('webpage').create(); page.open('http://example.com', function () { renderLargePage(page, 'screenshot.png', function (error) { phantom.exit(); }); }); ## Parameters The `renderLargePage` function accepts the following parameters: renderLargePage(page, filename, callback, [options]); `page` is the PhantomJS page object to render. `filename` is a file path where the output image will be rendered, as you would pass it to PhantomJS' `render` function `callback` is a function that will be called on complete. callback will be passed an error parameter, that will only be present if there was an error. `options` is an optional object with the following optional properties: `options.tmpDir` a path to the directory where renderLargePage will write intermediate files. Defaults to process.env.TMPDIR (usually /tmp) `options.format` it will be passed as the second parameter to PhantomJS' `render` function. Defaults to 'png' `options.quality` it will be passed as the third parameter to PhantomJS' `render` function and to ImageMagick's `-quality` option. Defaults to 100. `options.limit` Side of the square partial images rendered and stitched together later. Potentially useful to limit memory use. Defaults to 30720 For more information on supported image formats, quality, etc, see the PhantomJS docs for the `render` functionality: http://phantomjs.org/api/webpage/method/render.html