【发布时间】:2010-07-28 20:30:24
【问题描述】:
我正在编写一个应用程序,让用户可以使用 Raphael.JS 生成图像。我想要的次要功能之一是生成 Raphael 画布的 PNG。
这是我脑海中的一般管道:
- 用户输入参数
- 我们使用 Raphael 调用生成 JS
- 我们生成一个执行上述操作的 JS 包装器,并在包含的 div 上调用 .innerHTML,为我们提供 SVG(然后我们将其发送到某个地方)
- 我们执行 JS 包装器
- SVG 被发送到 ImageMagick 并弹出一个 PNG
第 4 步是我需要一些指导的步骤。用户可能正在使用 IE;我们不能保证 JS 曾经在 SVG 浏览器中执行过。无论如何,我们需要它在服务器端运行以使其可靠。所以这里是我到目前为止提出的三种可能性:
- 在服务器上安装 Firefox 并在 Firefox 中运行 (3) 的结果。这个选项很糟糕,因为安装 FF 意味着在我们的服务器上安装一堆 X 东西,运行 FF 会带来很多开销,而且我真的不想在跟踪进程并在完成后将其杀死。
- 使用 Node.js + jsdom (http://github.com/tmpvar/jsdom)。这里的缺点是尚不清楚 jsdom 的支持程度如何 - 所谓的站点 jsdom.org 并不真正存在。另外,我找不到任何文档。
- 也许可以用 Rhino 做点什么?据我所知,Rhino 的 DOM 支持比 Node 还少。
所以...所有这三个选项都很糟糕。我认为。我错了吗?还有其他方法吗?
【问题讨论】:
标签: javascript image png raphael rhino