MITライセンスです。
ソースは https://github.com/hnakamur/html2png に置きました。
ソース
短いのでここにも引用します。
件名で変換と言っていますが、openでウェブページを開いてrender APIを使ってスクリーンショットをとっているだけです。
https://github.com/hnakamur/html2png/blob/9daf997f531b9f4668ebc06c77556b160dd877fa/html2png
# !/usr/bin/env phantomjs
var page = require('webpage').create();
var system = require('system');
if (system.args.length !== 3) {
console.log('Usage: ' + system.args[0] + ' html_file png_file');
phantom.exit(1);
}
var htmlFile = system.args[1];
var pngFile = system.args[2];
page.open(htmlFile, function(status) {
if (status === 'fail') {
console.log('Error! failed to open ' + htmlFile);
phantom.exit(1);
}
page.evaluate(function() {
document.body.bgColor = 'white';
});
page.render(pngFile);
phantom.exit();
});
PhantomJSはデフォルトの背景色は透明ですが、FAQ | PhantomJSの"Q: When using render(), why is the background transparent?"のコードを使って白にしています。
使い方
事前にPhantomJS | PhantomJSをインストールしてPATHを通しておいてください。
./html2png HTMLのファイルパスまたはURL PNGのファイルパス
出力例
./html2png http://phantomjs.org/ phantomjs.org.png
で変換した例です。