以前、wkhtmltoimageを用いたWebサイトのスクリーンショットの保存を書いたのですが、バックエンドにphantom.jsを利用してさらにお手軽にできる方法があったのでメモ
node.jsならwebshotというモジュールを入れればいいだけです
screenshot.js
var webshot = require('webshot');
var options = {}; // サイトを参考に色々設定
webshot('<<URL>>', options, function(err, renderStream){
var chunks = new Array();
renderStream.on('data', function(data){
chunks.push(new Buffer(data));
});
renderStream.on('error', function(e){
console.log(e);
});
renderStream.on('end', function(){
var data = Buffer.concat(chunks);
// この時点でdataにスクリーンショットの画像データがバイナリで入ってる
});
});
例によって、レンダリングまで時間がかかるものもあるのでそこは考慮すること