2009-12-23 72 views
3

我在通過fop呈現爲pdf格式的svg中呈現truetype字體的問題。在SVG中渲染truetype字體的問題

在最終的PDF字體出來與Times New Roman,而不是我期望的truetype字體。

該文檔的主要字體家族正在使用Type 1字體,並且還使用了我生成的字體指標,這些指標正確顯示。我認爲在過去只添加了字體的truetype版本。

奇怪的是,這是在一個階段工作,似乎已停止工作,我現在無法恢復工作,因爲我不明白它會如何起作用。爲了試着讓它恢復工作,我經歷了Java 6,Java 5和FOP 0.95和0.93的不同組合以及最新的FOP主幹,但都沒有成功。即使在fop世代中啓用了完整跟蹤,我也沒有看到用Times New Roman代替字體,但我認爲這是因爲Batik對此渲染負有責任。

我已經運行了一些示例Java代碼,並且TrueType字體似乎被AWT正確顯示,我相信它是Batik正在使用的。

我也試過在fop.xconf文件中使用字體替換,但是這似乎沒有效果。在fop.xconf中,我只定義了Type 1字體和一個在pdf中正確處理的True Type字體Zapfdingbats。我還應該在這裏添加其他truetype字體,但檢查我們的版本歷史記錄,它似乎並沒有在過去。

有什麼我在這裏失蹤,因爲我認爲蠟染將採取窗口ttf字體和呈現它,但這似乎並沒有工作。任何幫助將不勝感激。 謝謝, 喝醉

回答

5

看看在FOP用戶提出了以下的答案郵件列表:

因此,爲了使這項工作,你應該請執行以下操作:

  • 使用FOP 0.95
  • 請勿使用通過TTFReader生成的XML字體指標文件。這些不再是必要的。
  • 確保您要使用安裝在您的操作系統的字體(所以蠟染具有通過AWT/Java2D的對它們的訪問),並配置爲FOP(最簡單的方法:,http://xmlgraphics.apache.org/fop/0.95/fonts.html#basics
  • 使用權字體系列名稱SVG中的字體。字體的PostScript名稱將不起作用。
+0

謝謝。我已經閱讀過這兩篇文章,並且使用了Windows字體名稱,並且已經檢查過該代碼段是否由java找到了該字體。 我缺少的是我的xconf中的標籤。 這是0.95添加的第一個嗎?現在它再次工作。感謝您的幫助,祝您有個愉快的聖誕假期 – Crocked 2009-12-24 08:28:49

+0

+1希望當我需要在FOP中設置SVG渲染時,我發現了這一點。好總結! – 2011-04-05 06:54:15