Javascript 有没有一种方法可以在任何浏览器(包括旧版本的IE)中将Raphael paper结果转换为PNG/SVG?
我看到很多人在为这件事争吵,但我找不到合适的解决办法,也找不到适合我需要的办法 我正在用Raphael制作一些图表,我基本上需要将它们作为PNG(用于导出,或以后在PDF中使用,以及其他一些东西)。对于Firefox、Chrome、IE9和任何其他支持SVG的浏览器来说都很简单。实际上有两种实现方法:使用canvg将SVG渲染为画布元素,然后获取图像数据;或者将SVG发送到服务器(C#)并使用库将其光栅化 问题当然是8和7。在这些浏览器中,Raphael输出VML,显然无法获取SVG源代码。我找不到任何VML光栅化器,因此它只允许我使用一种解决方案:将VML转换为SVG,或者用SVG重新绘制图纸 我检查了vectorconvert库por PHP,该库实际上使用XSLT转换将VML转换为SVG,但我无法使其工作(我尝试了几种工具来测试XSL,但似乎都不起作用) 我试图强制Raphael将SVG输出到一个隐藏的div,方法是更改其属性Javascript 有没有一种方法可以在任何浏览器(包括旧版本的IE)中将Raphael paper结果转换为PNG/SVG?,javascript,svg,raphael,vml,Javascript,Svg,Raphael,Vml,我看到很多人在为这件事争吵,但我找不到合适的解决办法,也找不到适合我需要的办法 我正在用Raphael制作一些图表,我基本上需要将它们作为PNG(用于导出,或以后在PDF中使用,以及其他一些东西)。对于Firefox、Chrome、IE9和任何其他支持SVG的浏览器来说都很简单。实际上有两种实现方法:使用canvg将SVG渲染为画布元素,然后获取图像数据;或者将SVG发送到服务器(C#)并使用库将其光栅化 问题当然是8和7。在这些浏览器中,Raphael输出VML,显然无法获取SVG源代码。我找
.type
、.SVG
、和.vml
,但这也不起作用
我认为有一种方法可以在IE中将SVG树写入隐藏的DIV中;尽管浏览器不会显示它,但文本应该在那里
有人知道实现它的方法吗?谢谢 要呈现SVG,还可以使用库。它是SVG解析器和渲染器,具有画布结果输出。
接下来,您可以简单地将像素数据从画布输出到PNG
要解决您可以使用的IE限制问题。问题在于试图支持那些旧浏览器,请友好地告诉这些人:“您的浏览器已过时,请更新以使用此页面。单击此处下载Internet Explorer 9”我不确定它如何适合解决方案,但这样做会有帮助吗?:它至少可以让你对纸上的内容有一个一致的看法,并在其他地方制作图像。另外,请看:两者的结合可以实现这一点。我检查了raphael.serialize,但我仍然应该找到其他东西。nodeJS解决方案可能很有用,但我想为我的场景找到一个更优雅的解决方案(C#+Javascript)。此外,我还检查了另外两个有帮助的库:和;最后一个似乎做了我想要的事情,但它实现了一半。虽然它看起来很有希望,但在它完成之前,对我来说是无用的。谢谢!