Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/352.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java pdfbox生成带有西里尔字符的pdf_Java_Pdfbox - Fatal编程技术网

Java pdfbox生成带有西里尔字符的pdf

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

我使用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.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()
加载字体?如果是,则表示字形不在字体中。使用其他字体,或从其工作的操作系统复制字体。