2012-03-23 174 views
4

我正在使用ImageMagick將SVG轉換爲PNG,並且所有工作都像魅力,直到我嘗試使用@ font-face添加自定義字體,然後在SVG文件中。在蠟染這工作得很好,但現在在ImageMagick我只是不能得到它的工作。使用ImageMagick將SVG與自定義字體轉換爲PNG

我可以將字體更改爲「convert -list font」中列出的字體,但我可能不得不經常更改字體,所以我想指向使用font-face或其他解決方案進行轉換的字體文件沒關係。

SVG文件還可以包含多個字體系列,而我的ImageMagick安裝包含rsvg委託。

任何想法?謝謝!

+0

如果您無法使ImageMagick工作,請考慮使用'inkscape'進行轉換,該命令也可以在命令行中調用。我不知道它的@ font-face支持是什麼樣的,但我應該有興趣知道你是否研究它。 – halfer 2012-03-23 10:18:59

+0

我使用ImageMagick完成了我所有的SVG - > PNG,除了字體以外,它們都運行良好。我會嘗試使用type.xml來安裝它們,但是我會盡量不要...... – 2012-03-23 10:38:08

+0

儘管如此,Inkscape的工作效果要比部分工作的ImageMagick好。鑑於在CLI上啓動轉換有多容易,是否值得一試? – halfer 2012-03-23 10:40:30

回答

0

Inkscape可以從命令行運行。它具有豐富的轉換選項(請參閱man inkscape),並且通過--verb和--select選項甚至可以執行您在GUI中執行的操作。正如halfer指出的那樣,它在轉換中也相當快速。但請注意,它的渲染器專爲交互式顯示而設計,而不是rsvg所做的單通靜態顯示,因此在某些情況下rsvg可能會更快。此外,在Web服務器上安裝Inkscape有時可能會出現問題,原因很簡單,這是由於此應用程序需要大量的依賴關係。

當我們向Inkscape添加這些命令行選項時,部分原因是rsvg缺少對很多SVG功能,包括字體。自那時以來,rsvg得到了改進,我認爲它現在應該支持通過font-face屬性替換字體。最常見的問題是在rsvg不看的地方安裝字體(也許專有字體在發行版中保存在不同的路徑中)

祝你好運,讓我們知道你是否把它整理出來。

1

嘗試rsvg-convert(命令行程序)由librsvg2包提供。

我在亞馬遜Linux上有與ImageMagick相同的問題(但不是在我的Ubuntu桌面上)。 我認爲ImageMagick的SVG處理相當差。它無法正確識別「display:none」樣式屬性。

+0

我有一個從Illustrator導出的SVG,並且字體沒有通過rsvg-convert正確呈現,直到我通過fontType = SVGFontType.OUTLINEFONT(通過JS API;也可能存在於GUI中)從Illustrator導出SVG。 – tremby 2015-05-22 01:15:19