Webkit 上に構築された PhantomJS を使用して、Web ページの大きな png スクリーンショットを生成しようとしています。私はスクリーンショットをうまく生成するアプリケーションを持っています ( raster.js の例を使用します)。次のようなことを行うだけで、Webページを単純にスケーリング/ズームできると思いました。
document.documentElement.style.webkitTransform = "scale(2.0)";
しかし、それにより、ページのコンテンツがビューポートをエスケープします。これは、Chrome でそのコード行を評価するとわかります。JavaScript/Phantom.js で Web ページ全体をスケーリングする (ブラウザの「Ctrl +」機能を複製する) ことは可能ですか?
私の現在のphantom.jsスクリプトは次のようになります:
var page = new WebPage(),
address, output, size;
if (phantom.args.length < 2 || phantom.args.length > 3) {
console.log('Usage: rasterize.js URL filename');
phantom.exit();
} else {
address = phantom.args[0];
output = phantom.args[1];
page.viewportSize = { width: 1280, height: 1024 };
page.open(address, function (status) {
if (status !== 'success') {
console.log('Unable to load the address!');
} else {
page.evaluate(function () {
document.body.style.webkitTransform = "scale(2.0)";
});
window.setTimeout(function () {
page.render(output);
phantom.exit();
}, 200);
}
});
}