我有一个 SVG 文件,我想在 Internet Explorer 中查看。
IE 使用 VML 处理矢量文件,但我在任何地方都找不到这两种格式之间的任何类型的转换器!(不在 Inkscape、Illustrator、OpenOffice Draw 中……这怎么可能!)
我看了看 Raphael,但 Raphael 无法读取现有文件。
我找到了http://vectorconverter.sourceforge.net/index.html
但我不明白如何使用它......有什么帮助吗?
我有一个 SVG 文件,我想在 Internet Explorer 中查看。
IE 使用 VML 处理矢量文件,但我在任何地方都找不到这两种格式之间的任何类型的转换器!(不在 Inkscape、Illustrator、OpenOffice Draw 中……这怎么可能!)
我看了看 Raphael,但 Raphael 无法读取现有文件。
我找到了http://vectorconverter.sourceforge.net/index.html
但我不明白如何使用它......有什么帮助吗?
试试这个 - SVG 路径到 VML 路径。它基本上将 SVG 路径转换为可用于 .v:shape但是您仍然必须手动将 SVGpath转换为 VML 路径。v:shape您尝试过的矢量转换器是基于 Web 的,并使用 XSLT 模板进行转换,而我建议的库可以使用纯 javascript 和单行代码来完成。希望这可以帮助。
你可以试试这个在线转换器:http ://www.irunmywebsite.com/raphael/SVGTOHTML_LIVE.php
您可以选择转换为由 Raphael 管理的 JSON 的形状。或者使用 Raphael 进行内联和更快的包装。
我个人更喜欢 JSON 方法。您可以随意将内容放在外部文件和ajax图纸上。接下来,您将使用以下任一方法绘制形状:
Raphael(json); //create a new paper with the shapes
或者,如果您想在现有论文上绘图:
function drawJson(items, paper) {
var set = paper.set(),
l = items.length;
for (i = 0; i < l; i++) {
set.push(paper[items[i].type]().attr(items[i]));
}
return set;
}
您可以将最后一个函数放在 Raphael 插件中。
注意:您可以通过删除转换后的路径中的一些空格来节省一些 kb。例如蚂蚁:
<replaceregexp match="\s?([CML])\s?" replace="\1" flags="g" file="drawings.json"/>
LibreOffice可以读取从 Word 文档导入的 VML。您还可以下载和调整SVG=>VML XSLT并在 IE 中进行测试,如下所示:
<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet type="text/xsl" media="application/xml" charset="UTF-8" href="svg2vml.xml"?>
<svg>
<rect x="25" y="25" width="150" height="200" style="stroke:#AABBFF; stroke-width:1; fill:#AABBFF"/>
<ellipse cx="100" cy="120" rx="50" ry="75" style="stroke:#FF0000; stroke-width:4; fill:#AABBFF"/>
</svg>