2017-06-01 95 views
2

我使用pdfbox-2.0.6創建pdf文件,導入自定義字體並使用西里爾字符完成文檔。當我在3臺計算機上測試時(基於2xWindows和1 Linux ubunto)可以。但是,當我在我的代碼部署到服務器(CentOS的基礎)的代碼特羅此異常:pdfbox生成帶西里爾文字符的pdf

java.lang.IllegalArgumentException: No glyph for U+0448 in font FontSans-BoldCyr

我試着用PDFBOX默認字體(PDType1Font.TIMES_ROMAN , PDType1Font.HELVETICA)但後來我得到

java.lang.IllegalArgumentException: U+0412 ('Vecyrillic') is not available in this font's encoding: WinAnsiEncoding 
    org.apache.pdfbox.pdmodel.font.PDType1Font.encode(PDType1Font.java:345) 
    org.apache.pdfbox.pdmodel.font.PDFont.encode(PDFont.java:286) 
    org.apache.pdfbox.pdmodel.PDPageContentStream.showText(PDPageContentStream.java:411) 

的文字,我試圖在pdf上糾正是"Вашето индивидуално предложение"

+0

你讀過的常見問題? https://pdfbox.apache.org/2.0/faq.html#fontencoding?如果是,您是否使用'PDType0Font.load()'加載字體?如果是,那麼這意味着字形不在字體中。使用不同的字體,或從其工作的操作系統複製字體。 –

回答

0
+0

如果我安裝該軟件包並使用例如PDType1Font.TIMES_ROMAN,我可以寫cyrrilic單詞嗎? –

+0

不,因爲它不是WinAnsiEncoding的一部分。 –

+0

只需安裝DejaVu Sans,PT Sans或更好的@fonts組。如果你想操縱字體服務器端不建立沒有字體的裁減系統!獨立時,默認的i18n Centos支持很好。 – nim