我有一個使用兩個已安裝的字體(Helvetica-Narrow
和Helvetica-Bold
)一個簡單的測試SVG:使用ImageMagick將SVG轉換爲PDF並具有可靠的字體選擇?
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="100" height="50">
<text x="0" y="24" fill="blue" font-family="Helvetica-Bold" font-size="24px">Bold</text>
<text x="0" y="48" fill="blue" font-family="Helvetica-Narrow" font-size="24px">Narrow</text>
</svg>
如果我將它轉換爲使用ImageMagick PDF文件(ImageMagick的7.0.2-0 Q16 x86_64的CentOS上的Linux 7上運行(Core)),那麼結果不會使用已安裝的字體。
例如:
$ convert -density 600 test.svg test.pdf
收率:
它看起來像ImageMagick的默認使用的Helvetica
正常重量,這不匹配或者在指定的字體的家庭輸入SVG。
接下來,我嘗試指定輸入SVG中指定的其中一個字體的路徑。這是通過運行convert -list font
確定的Helvetica-Bold
字體的路徑。
$ convert -density 600 -font /net/module/sw/ghostscript-fonts/5.50-32/n019004l.pfb test-helvetica-mix.svg test-helvetica-mix-bold.pdf
第一<text>
元件是正確的 - 它使用Helvetica-Bold
。第二個<text>
元素不正確 - 它也使用Helvetica-Bold
,但實際上應該使用Helvetica-Narrow
。
不過,我得到這種方法更接近,所以我嘗試添加路徑輸入SVG使用第二字體:
$ convert -density 600 -font /net/module/sw/ghostscript-fonts/5.50-32/n019004l.pfb -font /net/module/sw/ghostscript-fonts/5.50-32/n019043l.pfb test-helvetica-mix.svg test-helvetica-mix-both.pdf
ImageMagick的使用Helvetica-Narrow
字樣兩個元素,這是不正確的,同樣的原因。
有沒有辦法說服ImageMagick使用輸入SVG中的<text>
元素中指定的正確字體?
原始SVG是否在您的機器上正確渲染? IE瀏覽器。正確的字體? –
ImageMagick是一款萬能轉換器。如果它有一種特定格式的問題,那就不會出乎意料。你有沒有嘗試過專門研究SVG的人?例如Apache Batik? https://xmlgraphics.apache.org/batik/tools/rasterizer.html –
SVG是正確的。雖然我很欣賞其他工具的建議,但我應該注意到,我正在尋找指定問題的解決方案,即使ImageMagick與安裝的字體正確工作所特別需要的東西。 (討論其他工具可能是最好的,除了這個線程。) –