使用PDFBox将cyrillic chars写入PDF表单字段

时间:2017-03-20 12:09:37

标签: pdf fonts pdfbox acrobat

我正在使用pdfbox 2.0.5使用以下代码填写PDF文档的表单字段:

        doc = PDDocument.load(inputStream);
        PDDocumentCatalog catalog = doc.getDocumentCatalog();
        PDAcroForm form = catalog.getAcroForm();
        for (PDField field : form.getFieldTree()){
            field.setValue("должен");
        }

我收到此错误: U + 0434(' afii10069')此字体不可用Times-Roman(通用:TimesNewRomanPSMT)编码:带差异的StandardEncoding

PDF文档本身包含显示正常的西里尔文本。我尝试过使用不同的字体。对于" Arial Unicode MS"它想下载一个50MB" Adob​​e Acrobat Reader DC字体包"。这是西里尔字符的要求吗?

我必须在文本字段中指定哪种字体来处理西里尔(或亚洲)字符?

谢谢, 罗波

2 个答案:

答案 0 :(得分:4)

Adob​​e通过重用{/ Ubuntu}字体中的嵌入字体文件来处理它,并从中创建一个新的字体资源。这是一个快速的黑客,可以作为如何实现类似的东西的指南。该代码特定于我已经获得的样本。

<input type="range" min="0" max="10" step="2" value="6">

答案 1 :(得分:2)

解决方案很简单: form.setNeedAppearances(真);

然后我删除了该字段的蓝框: field.setReadOnly(真);

相关问题