我见过很多人为这件事而斗争,但我找不到合适的解决方案,也找不到适合我需要的解决方案。
我正在用 Raphael 做一些图表,我基本上需要将它们作为 PNG(用于导出,或稍后在 PDF 中使用,以及其他一些东西)。对于 Firefox、Chrome、IE 9 和任何其他支持 SVG 的浏览器来说都很容易。其实有两种实现方式:使用canvg将SVG渲染成canvas元素,然后获取图片数据;或将 SVG 发送到服务器(C#)并使用库对其进行光栅化。
问题当然是 IE 8 和 7。在这些浏览器中,Raphael 输出 VML,显然无法获取 SVG 源代码。我找不到任何 VML 光栅化器,所以它让我只有一个解决方案:将 VML 转换为 SVG,或者在 SVG 中重新绘制纸张。
我检查了用于 PHP 的 vectorconvert 库,它实际上使用 XSLT 转换将 VML 转换为 SVG,但我无法使其工作(我尝试了几种工具来测试 XSL,但似乎都没有工作)。
.type
我试图通过正确更改其属性,.svg
和来强制 Raphael 将 SVG 输出到隐藏的 div,.vml
但这也不起作用。
我认为在 IE 中可能有一种方法可以将 SVG 树写入隐藏的 DIV;尽管浏览器不会显示它,但文本应该在那里。
有谁知道实现它的方法?谢谢!