banquo-webfonts
v0.3.3
Published
A Node.js screenshotting library using PhantomJs.
Downloads
3
Readme
Banquo
Banquo builds off of Depict, a node library designed to use PhantomJS to take screenshots of interactive visualizations. Banquo is slightly different in that it is built to be called on a Node.js server and returns a base64-encoded version of the screenshot as jsonp, as opposed to saving the screenshot to a file.
As a result, Banquo doesn't run on the command line, as Depict does, but instead is called like the example below from another Node.js script.
NOTE: As of Banquo 0.3.0, it no longer requires you to install PhantomJs separately.
Installation
You'll generally install this as a dependency in your package.json
.
npm install banquo --save
If you want to install it without adding it to your package.json
, run the command above without --save
.
Usage
You can set up your own service with banquo by cloning banquo-server.
Note: Banquo server uses an older version of Banquo. Pull request welcome.
Here's a basic standalone setup:
var banquo = require('banquo');
var opts = {
mode: 'base64',
url: 'america.aljazeera.com',
viewport_width: 1440,
delay: 1000,
selector: '#articleHighlightList-0'
};
banquo.capture(opts, function(err, imageData){
if (err) {
console.log(err)
}
console.log(imageData);
});
Or if mode is save
and scrape
is true
you get the body markup. This behavior will be standardized in future versions so that just by setting scrape
to true
you'll get a third argument of the bodyMarkup
. Pull request welcome.
var banquo = require('banquo');
var opts = {
mode: 'save',
url: 'america.aljazeera.com',
viewport_width: 1440,
delay: 1000,
selector: '#articleHighlightList-0',
scrape: true
};
banquo.capture(opts, function(err, bodyMarkup){
if (err) {
console.log(err)
}
console.log(bodyMarkup);
});
Options
Key | Required | Default | Options | Description
--- | --- | --- | --- | ---
mode |no| base64
| save
or base64
| The former will save a file to the out_file
location and return a success string callback. The latter will return the image as a base64 string.
url |yes| null | String | The website you want to screenshot.
viewport_width |no| 1440 | Number (Pixels) | The desired browser width. Settings this to a higher number will increase processing time.
viewport_height |no| 900 | Number (Pixels) | The desired browser height. Settings this to a higher number will increase processing time. May be useful with long scrolls in fixed height containers.
delay |no| 1000 | Number (Milliseconds) | How long to wait after the page has loaded before taking the screenshot. PhantomJS apparently waits for the page to load but if you have a map or other data calculations going on, you'll need to specify a wait time.
selector |no| body
| String (CSS selector) | The div you want to screenshot.
css_hide |no| null | String (CSS selector) | Any divs you want to hide, such as zoom buttons on map. Defaults to none.
out_file |no| './image_%Y-%m-%d.png' | String (File path)| The name and location of the image file you want to save. Defaults to image_
plus the ISO year, month, day.
user_agent |no| null | String | Set a custom user-agent string.
scrape |no| false | Boolean | If set to true and mode
is save
will return the HTML as a string. Does not work if mode is base64
.
custom_headers | no | null | JSON (headers) | JSON object of any custom headers - i.e. {"Authentication": "Basic MYTOKEN"}