我有一个非常类似的问题,如this post;我使用RaphaelJS生成图表,但更具体地说,在我的情况下,我需要打印结果。我已经使用Inkscape's command line utility(它非常出色)将Raphael的SVG输出转换为PNG文件,用户可以下载并打印该文件。在.NET中将VML转换为SVG
问题是,它适用于Firefox等,但不适用于Internet Explorer。由于IE使用VML而不是SVG,Inkscape在用户来自IE时不会转换它。
我已经看过IECapt,可能已经完成了这项工作,但是在我的场景中,字面截图不够,因为生成的图表通常跨越多个屏幕宽度,我需要将它全部放在一个文件中。此外,用户可以通过点击节点等来修改图表,而无需更改URL,所以实际上在我的情况下使用IECapt将需要URL参数来复制图表的状态。
我只需要从VML格式转换我的头,我可以擦拭这个项目!
链接
- Using Inkscape直接从C#应用程序
- IECapt
谢谢你;我应该提到我已经看过这篇文章,并且看了一下Vector Converter,但是似乎只有支持PHP的平台才能使用VC?我正在研究企业内部网,并且无法支持PHP。 **编辑**:我刚刚看到您的编辑。如果我能找到任何东西,我会看看。 – Arj 2011-05-05 13:07:40
我不是一个.NET的人,所以我害怕我无法帮到那里。似乎应该不会太难阅读XML足以确定您是否拥有SVG或VML,然后在处理inkscape之前运行XSLT(如果它是VML)。如果你有能力在这个部署环境中编写你自己的JS,你实际上可能会在客户端执行VML - > SVG转换(IE有一个内置的XSLT引擎),不过我会推荐后端处理if尽可能。 – peteorpeter 2011-05-05 13:19:20
感谢您的帮助,我现在只是对XSLT进行一些研究。你认为这样做会是正确的吗? http://www.w3schools.com/xsl/xsl_client.asp - (滚动到“在浏览器中将XML转换为XHTML”)。 我有权访问VectorConverter使用的xslt文件,因此它应该只是使用正确文件的情况? – Arj 2011-05-05 14:04:04