Java pdfbox生成带有西里尔字符的pdf
我使用pdfbox-2.0.6创建pdf,导入自定义字体,并使用西里尔字符完成文档。当我在3台计算机(2台基于Windows和1台基于Linux的Ubento)上测试时,一切正常。但当我将代码部署到服务器(基于CentOS)时,代码会出现以下异常:Java pdfbox生成带有西里尔字符的pdf,java,pdfbox,Java,Pdfbox,我使用pdfbox-2.0.6创建pdf,导入自定义字体,并使用西里尔字符完成文档。当我在3台计算机(2台基于Windows和1台基于Linux的Ubento)上测试时,一切正常。但当我将代码部署到服务器(基于CentOS)时,代码会出现以下异常: java.lang.IllegalArgumentException:FontSans BoldCyr字体中的U+0448没有字形 我尝试使用pdfbox默认字体(PDType1Font.TIMES\u-ROMAN,PDType1Font.HELVE
java.lang.IllegalArgumentException:FontSans BoldCyr字体中的U+0448没有字形
我尝试使用pdfbox默认字体(PDType1Font.TIMES\u-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中写入的文本是“Баааааааааажаааааааааааа
如果我安装该软件包并使用例如PDType1Font.TIMES\u ROMAN,我可以写西里尔文字吗?不可以,因为这不是WinAnciencoding的一部分。只需安装DejaVu SAN、PT SAN或更好的@fonts组即可。如果您想在服务器端操作字体,请不要构建没有字体的精简系统!默认的i18n Centos支持是很好的,当你离开的时候。你读过常见问题解答吗?如果是,是否使用PDType0Font.load()
加载字体?如果是,则表示字形不在字体中。使用其他字体,或从其工作的操作系统复制字体。