2012-10-19 52 views
1

我有一個用於將svg轉換爲pdf的java程序。在這個svg文件中,我將Myriad Pro Light作爲樣式,在轉換爲pdf之後,字體即將出現。任何人都可以建議我如何以編程方式配置字體樣式。在java中轉換svg爲pdf的字體

+0

你能不能給我們你的軟件的更多細節創建SVGDocument實例之前註冊使用您的轉換?如果它允許字體嵌入,它應該暴露映射設施(字體 - >字體文件)。 –

+0

我沒有使用任何特定的軟件將svg轉換爲pdf,但我通過java程序轉換了svgs。 – Dalee

+0

你必須依靠一個圖書館或某物; java沒有任何內置pdf或svg工具。請解釋你如何從svg到pdf,這樣有人可以幫助你。 –

回答

0

Batik依靠AWT字體渲染SVG文本。如果在系統中未找到字體或未註冊字體,則最終會顯示默認的「sans serif」字體。

您必須確保系統上安裝了「Myriad pro light」字體,並且它具有與SVG文件中引用的字體完全相同的系列名稱(查看font-family屬性)。如果需要,在SVG文件中更正它。

如果安裝的字體全系統不是一個選項,你可以在運行的時候使用這樣的事情

GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment(); 
InputStream is = new FileInputStream(new File("path_to_myriad.ttf")); 
java.awt.Font font; 
try { 
    font = java.awt.Font.createFont(java.awt.Font.TRUETYPE_FONT, is); 
    ge.registerFont(font); 
} catch (FontFormatException e) { 
    e.printStackTrace(); 
} 
+0

我試過上面的代碼,但它不適合我。 – Dalee

+0

你介意發佈你的SVG文件,以便我可以看看嗎? –

+0

當然...但你應該幫助我做到這一點。我不知道如何在這裏添加長評論。我甚至嘗試粘貼我用於參考的代碼,但它沒有考慮長文本。該怎麼辦? – Dalee