此字体的编码中没有字符

时间:2017-04-05 06:57:24

标签: java pdf pdfbox

我使用Acrobat创建了一个简单的PDF文档,该文档由一个测试字段组成。文本字段的字体设置为David Bold。然后,我尝试使用PDFBox用希伯来字符填充此文本字段,我收到以下错误:

  

java.lang.IllegalArgumentException:U + 05D0在此不可用   font的编码:WinAnsiEncoding

PDFBox FAQ提出以下解决方案:

  

通过查看检查WinAnsiEncoding中的字符是否可用   在PDF规范附录D.如果没有,但如果可用   这个字体(在windows中,看看charmap.exe),然后加载   PDType0Font.load()的字体,另请参见EmbeddedFonts.java   源代码下载中的示例。

我检查了附录D,我正在使用的字符不是预期的一部分。但是,我并不真正了解常见问题解答通过加载字体的含义。我也检查了示例,但我没有使用相同的方法来填充我的文档。我的代码如下:

PDDocument pdfDocument = PDDocument.load(this.getClass().getClassLoader().getResourceAsStream("test.pdf"));
PDType0Font font = PDType0Font.load(pdfDocument, this.getClass().getClassLoader().getResourceAsStream("David-Bold_13087.ttf"));

PDAcroForm acroForm = pdfDocument.getDocumentCatalog().getAcroForm();
if (acroForm != null) {
    PDTextField field = (PDTextField) acroForm.getField("test");
    field.setValue("א");
}

0 个答案:

没有答案