Bye Bye Moore

猫マンション建築の野望を胸に零細事業主として資本主義の荒波に漕ぎ出したアラサー男の技術メモ

PhantomJsで画像やらPDFやらがレンダリングされる場合

PhantomJsにて、バックヤードが自動生成でバイナリファイルを吐く場合
……たとえば画像やPDFを吐く場合は、標準出力に書き出すという技があるようです。
ダウンロードせんともエエのですね……。

実際のところ

アウトプットされた結果は
ハッシュ値比較や特徴点抽出なんかで比べてやれば良いでしょう。
流石に目視比較は不毛にも程がありますからね……。

画像

var webPage = require('webpage');
var page = webPage.create();
var fs = require("fs");

page.viewportSize = {
	width: 1920,
	height: 1080
};

page.open('http://phantomjs.org', function (status) {
  var base64data = page.renderBase64('PNG');
  var fs = require("fs");
  fs.write("/dev/stdout", base64data, "w");
  phantom.exit();
});

デコードするときにはbase64コマンドをつかうといいかと。

$ phantomjs phantomtest.js | base64 -D > i.png

pdf

page.render(output);
var fs = require("fs");
var pdf = fs.read(output);
fs.write("/dev/stdout", pdf, "w");
fs.remove(output);