2011-05-05 155 views
0

我有一個非常類似的問題,如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格式轉換我的頭,我可以擦拭這個項目!

鏈接

回答

2

您可以轉換VML通過這SVG:http://sourceforge.net/projects/vectorconverter/,從這個問題採取:Are there any tools to convert legacy VML to SVG?,然後運行它通過Inkscape獲取PNG版本。

編輯:vectorconverter工具是基於PHP的,但使用XSLT進行繁重的工作--VML和SVG只是XML的底層 - 所以如果你不能直接訪問PHP庫,你可能會設法重用XSLT用你選擇的語言。

+1

謝謝你;我應該提到我已經看過這篇文章,並且看了一下Vector Converter,但是似乎只有支持PHP的平臺才能使用VC?我正在研究企業內部網,並且無法支持PHP。 **編輯**:我剛剛看到您的編輯。如果我能找到任何東西,我會看看。 – Arj 2011-05-05 13:07:40

+1

我不是一個.NET的人,所以我害怕我無法幫到那裏。似乎應該不會太難閱讀XML足以確定您是否擁有SVG或VML,然後在處理inkscape之前運行XSLT(如果它是VML)。如果你有能力在這個部署環境中編寫你自己的JS,你實際上可能會在客戶端執行VML - > SVG轉換(IE有一個內置的XSLT引擎),不過我會推薦後端處理if儘可能。 – peteorpeter 2011-05-05 13:19:20

+0

感謝您的幫助,我現在只是對XSLT進行一些研究。你認爲這樣做會是正確的嗎? http://www.w3schools.com/xsl/xsl_client.asp - (滾動到「在瀏覽器中將XML轉換爲XHTML」)。 我有權訪問VectorConverter使用的xslt文件,因此它應該只是使用正確文件的情況? – Arj 2011-05-05 14:04:04