PDFBox:如何设置文本写入的后备字体

时间:2018-05-04 15:47:07

标签: unicode pdfbox

我正在根据用户输入创建PDF,用户可以使用以下代码输入英文或中文文本

contentStream.beginText();
contentStream.setFont(font, fontSize);
contentStream.newLineAtOffset(startX, startY);
contentStream.showText(text);
contentStream.endText();

我收到错误

java.lang.IllegalArgumentException: No glyph for U+7B11 in font OpenSans-Regular

at org.apache.pdfbox.pdmodel.font.PDCIDFontType2.encode(PDCIDFontType2.java:363)
at org.apache.pdfbox.pdmodel.font.PDType0Font.encode(PDType0Font.java:398)
at org.apache.pdfbox.pdmodel.font.PDFont.encode(PDFont.java:323)
at org.apache.pdfbox.pdmodel.PDPageContentStream.showTextInternal(PDPageContentStream.java:508)
at org.apache.pdfbox.pdmodel.PDPageContentStream.showText(PDPageContentStream.java:471)

字体是OpenSans-Regular。此字体不包含笑解千

的字形

如何将回退字体添加到PDFBox中,以便如果找不到一种字体的字形,可以使用另一种字体?

版本:pdfbox-2.0.9

添加如下字体

PDFont openSansRegular = PDType0Font.load(document, MyLayout.class.getResourceAsStream(OPENSANS_REGULAR_PATH));

0 个答案:

没有答案