Вывод на печать протовиса (программно)
Я размышляю о переходе на Protovis для визуализаций. Однако я скептически отношусь к одной вещи: поскольку Protovis создает свои выходные данные в виде div в браузере, мне интересно, есть ли какой-нибудь полуавтоматический способ создать сразу несколько изображений, не открывая каждое из них и не нажимая кнопку "печать" "вручную.
Так что вопрос будет:
- Как вы думаете, я могу использовать JS-движок без браузера, такой как V8, чтобы выполнить код и напечатать результат?
- я могу автоматизировать открытие и печать в браузере?
- Есть ли другой способ получить автоматизированные изображения от Protovis?
Спасибо Николас
2 ответа
Решение
Проверьте http://www.phantomjs.org/
Это безголовый браузер.
Он может делать именно то, что вы хотите: http://code.google.com/p/phantomjs/wiki/QuickStart
rasterize.js:
if (phantom.state.length === 0) {
if (phantom.args.length !== 2) {
console.log('Usage: rasterize.js URL filename');
phantom.exit();
} else {
var address = phantom.args[0];
phantom.state = 'rasterize';
phantom.viewportSize = { width: 600, height: 600 };
phantom.open(address);
}
} else {
var output = phantom.args[1];
phantom.sleep(200);
phantom.render(output);
phantom.exit();
}
Пример создания рендеринга знаменитого тигра (из SVG):
phantomjs rasterize.js http://ariya.github.com/svg/tiger.svg tiger.png