pdfbox生成带西里尔文字符的pdf
我使用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上纠正是"Вашето индивидуално предложение"
。
尝试安装CentOS的服务器上的MS字体包,并使用它们: http://www.itzgeek.com/how-tos/linux/centos-how-tos/how-to-install-microsoft-truetype-fonts-in-centos-6-rhel-6.html
如果我安装该软件包并使用例如PDType1Font.TIMES_ROMAN,我可以写cyrrilic单词吗? –
不,因为它不是WinAnsiEncoding的一部分。 –
只需安装DejaVu Sans,PT Sans或更好的@fonts组。如果你想操纵字体服务器端不建立没有字体的裁减系统!独立时,默认的i18n Centos支持很好。 – nim
你读过的常见问题? https://pdfbox.apache.org/2.0/faq.html#fontencoding?如果是,您是否使用'PDType0Font.load()'加载字体?如果是,那么这意味着字形不在字体中。使用不同的字体,或从其工作的操作系统复制字体。 –