2012-09-22 55 views
7

我有一個文本編輯程序,將其輸出保存爲PDF文件。iText,Unicode字符和Java

它還將所有文本保存到PDF字典中,從中可以再次讀回它。 的問題是,在我的母語字符,如C,C,DJ,Z,S的很常見......

當我寫這些字在我的程序GUI,這很好,他們都apear(我(目前)使用java的arial字體)。

當我保存並打開PDF文件時,AdobeReader,iC缺失,並且應該打印đ,ž和š。我使用的是自定義(TrueType字體)字體(BookAntiqua,從here下載。

這是編碼問題或字體本身(它不支持對DJ,Z的人物)?

此外,當我再次將PDF加載到我的程序中時,丟失的字母仍然丟失,並且đ,ž,are與⎕symboles和類似的...交換PDF是如何編寫的或者是否還有其他內容?

底線是,我希望這五個字符可以在我的程序GUI和PDF文檔中看到,並且它們可以從PDF字典中正確檢索到。

回答

3

我有同樣的問題。我已經解決了改變支持這些字母的字體,忘了名字,也許Arial unicode? - 需要測試什麼字體 - 比我已經將該字體嵌入到pdf中。那很完美。我的名字有一定的那些奇怪的字符:)

編輯: 有一個樣品here如何做到這一點,並將其設置爲場太強了,here另一個代碼片段,它可以是有益。

+0

我知道如何將字體嵌入到PDF中,這不是問題,似乎問題出在我正在使用的字體上... 我一直在尋找一段時間...可以嗎向我推薦任何類似於BookAntiqua或TimesNewRoman並且還支持unicode字符的字體? –

+0

@IvanKarlovic不,我忘了這個名字,那是6年或更久以前。當然,如果你改變你的字體到一個正確的,並嵌入到PDF將解決問題,但你需要谷歌它。這裏是一個列表http://en.wikipedia.org/wiki/Unicode_font – 2012-09-22 12:26:51

+0

我發現字體,它確實有幫助,但它並沒有解決我的問題。從PDF中讀取的文本仍然不會打印這些字符。 我甚至tryed這一點: '公共靜態字符串unicodize(字符串字符串) \t { \t \t與string.replace( 「C」, 「/ u0106」); \t \t string.replace(「ć」,「/ u0107」); \t \t string.replace(「Č」,「/ u010C」); \t \t string.replace(「č」,「/ u010D」); \t \t string.replace(「Đ」,「/ u0110」); \t \t string.replace(「đ」,「/ u0111」); \t \t string.replace(「Š」,「/ u016​​0」); \t \t string.replace(「š」,「/ u016​​1」); \t \t string.replace(「Ž」,「/ u017D」); \t \t字符串。替換(「ž」,「/ u017E」); \t \t return string; \t \t}' –