Вывод на печать протовиса (программно)

Я размышляю о переходе на Protovis для визуализаций. Однако я скептически отношусь к одной вещи: поскольку Protovis создает свои выходные данные в виде div в браузере, мне интересно, есть ли какой-нибудь полуавтоматический способ создать сразу несколько изображений, не открывая каждое из них и не нажимая кнопку "печать" "вручную.

Так что вопрос будет:

  • Как вы думаете, я могу использовать JS-движок без браузера, такой как V8, чтобы выполнить код и напечатать результат?
  • я могу автоматизировать открытие и печать в браузере?
  • Есть ли другой способ получить автоматизированные изображения от Protovis?

Спасибо Николас

2 ответа

Решение

Загляните в эту ветку групп Google на эту тему.

Проверьте 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 

Другие вопросы по тегам