Ale*_*zzo 5 javascript svg vml raphael
我见过很多人都在为这件事而斗争,但我找不到合适的解决方案,也找不到符合我需要的解决方案.
我正在用Raphael做一些图表,我基本上需要将它们作为PNG(用于导出,或稍后用于PDF,以及其他一些东西).对于Firefox,Chrome,IE 9以及任何其他支持SVG的浏览器都很简单.实际上有两种实现方法:使用canvg将SVG渲染为canvas元素,然后获取图像数据; 或者将SVG发送到服务器(C#)并使用库来栅格化它.
问题当然是IE 8和7.在这些浏览器中,Raphael输出VML,并且显然没有办法获得SVG源.我找不到任何VML光栅化器,所以它让我只有一个解决方案:将VML转换为SVG,或者在SVG中重绘纸张.
我检查了vectorconvert库PHP,它实际上使用XSLT转换将VML转换为SVG,但我无法使其工作(我已经尝试了几种工具来测试XSL,但似乎都没有工作).
我试图迫使拉斐尔输出SVG到隐藏的div,通过改变其性质.type,.svg以及.vml适当的,但也不能工作.
我认为在IE中可能有一种方法可以将SVG树写入隐藏的DIV中; 尽管浏览器不会显示它,但文本应该在那里.
有谁知道实现它的方法?谢谢!
要渲染SVG,您还可以使用CanVG库。
它是SVG解析器和渲染器,具有画布结果输出。
接下来,您可以简单地将像素数据从canvas输出到PNG。
要解决 IE 限制,您可以使用Chrome Frame。