2

我正在考虑切换到 protovis 进行可视化。然而,让我怀疑的一件事 - 由于 protovis 在浏览器中将其输出创建为 div,我想知道是否有任何至少半自动的方式让我一次创建一堆图像而无需打开每个图像并按下“打印” “手动。

所以问题是:

  • 你认为我可以使用像 V8 这样的无浏览器 JS 引擎来执行代码并打印结果吗?
  • 我可以在浏览器中自动打开和打印吗?
  • 还有另一种方法可以从 protovis 获取自动图像吗?

谢谢,尼古拉斯

4

2 回答 2

2

看看这个关于这个主题的Google Groups 线程。

于 2010-10-10T15:41:51.037 回答
1

查看http://www.phantomjs.org/

它是一个无头浏览器。

它可以完全满足您的要求: http ://code.google.com/p/phantomjs/wiki/QuickStart#Rendering

光栅化.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();
}

生成著名 Tiger 渲染的示例(来自 SVG):

phantomjs rasterize.js http://ariya.github.com/svg/tiger.svg tiger.png 

在此处输入图像描述

于 2011-06-19T21:03:17.370 回答