簡體   English   中英

有沒有辦法在任何瀏覽器(包括較舊的IE)中將Raphael紙張結果轉換為PNG / SVG?

[英]Is there a way to transform a Raphael paper result to PNG/SVG in any browser (including older IEs)?

我見過很多人都在為這件事而斗爭,但我找不到合適的解決方案,也找不到符合我需要的解決方案。

我正在用Raphael做一些圖表,我基本上需要將它們作為PNG(用於導出,或稍后用於PDF,以及其他一些東西)。 對於Firefox,Chrome,IE 9以及任何其他支持SVG的瀏覽器都很簡單。 實際上有兩種實現方法:使用canvg將SVG渲染為canvas元素,然后獲取圖像數據; 或者將SVG發送到服務器(C#)並使用庫來柵格化它。

問題當然是IE 8和7.在這些瀏覽器中,Raphael輸出VML,並且顯然沒有辦法獲得SVG源。 我找不到任何VML光柵化器,所以它讓我只有一個解決方案:將VML轉換為SVG,或者在SVG中重繪紙張。

我檢查了vectorconvert庫PHP,它實際上使用XSLT轉換將VML轉換為SVG,但我無法使其工作(我已經嘗試了幾種工具來測試XSL,但似乎都沒有工作)。

我試圖通過正確地更改其屬性.type.svg.vml來強制Raphael將SVG輸出到隱藏的div,但這也不起作用。

我認為在IE中可能有一種方法可以將SVG樹寫入隱藏的DIV中; 盡管瀏覽器不會顯示它,但文本應該在那里。

有誰知道實現它的方法? 謝謝!

要渲染SVG,您還可以使用CanVG庫。
它是帶有畫布結果輸出的SVG解析器和渲染器。
接下來,您可以簡單地將畫布中的像素數據輸出到PNG

要解決IE限制,您可以使用Chrome Frame

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM