Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/472.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 有没有一种方法可以在任何浏览器(包括旧版本的IE)中将Raphael paper结果转换为PNG/SVG?_Javascript_Svg_Raphael_Vml - Fatal编程技术网

Javascript 有没有一种方法可以在任何浏览器(包括旧版本的IE)中将Raphael paper结果转换为PNG/SVG?

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源代码。我找

我看到很多人在为这件事争吵,但我找不到合适的解决办法,也找不到适合我需要的办法

我正在用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,方法是更改其属性
.type
.SVG
、和
.vml
,但这也不起作用

我认为有一种方法可以在IE中将SVG树写入隐藏的DIV中;尽管浏览器不会显示它,但文本应该在那里

有人知道实现它的方法吗?谢谢

要呈现SVG,还可以使用库。
它是SVG解析器和渲染器,具有画布结果输出。
接下来,您可以简单地将像素数据从画布输出到PNG


要解决您可以使用的IE限制问题。

问题在于试图支持那些旧浏览器,请友好地告诉这些人:“您的浏览器已过时,请更新以使用此页面。单击此处下载Internet Explorer 9”我不确定它如何适合解决方案,但这样做会有帮助吗?:它至少可以让你对纸上的内容有一个一致的看法,并在其他地方制作图像。另外,请看:两者的结合可以实现这一点。我检查了raphael.serialize,但我仍然应该找到其他东西。nodeJS解决方案可能很有用,但我想为我的场景找到一个更优雅的解决方案(C#+Javascript)。此外,我还检查了另外两个有帮助的库:和;最后一个似乎做了我想要的事情,但它实现了一半。虽然它看起来很有希望,但在它完成之前,对我来说是无用的。谢谢!