2011-06-18 102 views
4

我有一個SVG文件,我想在Internet Explorer中查看。SVG到VML - 怎麼樣?

IE瀏覽器使用VML作爲矢量文件,但我無法在任何地方找到這兩種格式之間的任何一種轉換器! (不在Inkscape,Illustrator,OpenOffice Draw ......這怎麼可能!)

我看了看Raphael,但Raphael無法讀取現有文件。

我發現​​

但我不知道如何使用它...任何幫助嗎?

回答

2

試試這個 - SVG path to VML Path。它基本上將SVG路徑轉換爲可在v:shape中使用的VML路徑。但是,您仍然需要手動將SVG的path轉換爲v:shape。您嘗試過的矢量轉換器是基於Web的,並使用XSLT模板進行轉換,而我建議的庫可以使用純javascript和單行代碼來完成。希望這可以幫助。

+0

看起來很有希望,我會考慮它...不能相信任何圖形軟件將支持這兩種格式是......真的是這樣嗎? – Dylan

1

你可以試試這個在線轉換器:http://www.irunmywebsite.com/raphael/SVGTOHTML_LIVE.php

可以轉換爲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; 
    } 

你可以把最後一個函數在拉斐爾插件。

注意:您可以通過刪除轉換路徑中的一些空格來保存一些kb。以螞蟻爲例:

<replaceregexp match="\s?([CML])\s?" replace="\1" flags="g" file="drawings.json"/> 
0

LibreOffice可以讀取從Word文檔導入的VML。您也可以在IE瀏覽器這樣的下載和調整的SVG=>VML XSLT並對其進行測試:

<?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> 
+0

LibreOffice對於各種各樣的事物來說是非常有用的。 – superluminary