问题描述
我用 field.setValue 填写表格。但是,即使PDF文档中嵌入了字体,我仍然收到错误”,该字体的编码中不存在“ WinAnsiEncoding” ,无论它是哪种字体。请注意,这是针对中文或俄语字符的情况。
解决方法
您的PDF文档可能已嵌入字体,但显然已嵌入 Encoding 值 WinAnsiEncoding 。
WinAnsiEncoding 本质上包含拉丁语15个字符,因此旨在用于“西欧”语言(请参见Wikipedia article on this),尤其是对于西里尔字母也不用于CJK语言。
如果要使用PDFBox将中文或俄语字符填写到表单字段中,则必须
- 要么预先使用适当的编码将字体嵌入PDF中
- 或在设置表单字段值之前立即用PDFBox替换嵌入字体,例如,参见this answer。