2017-06-01 120 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