2

I am using pdfbox to fill up a form in my pdf file, application is able to show number of available fields on the form but it returns the following error

  Messages:     
     Error: Don't know how to calculate the position for non-simple fonts
     File:  org/apache/pdfbox/pdmodel/interactive/form/PDAppearance.java
     Line number:   616

Code

.....

while (fieldsIter.hasNext()) {
                PDField field = (PDField) fieldsIter.next();
                setField(pdf, field.getPartialName(), "My input");
                //setField(pdf, field.getFullyQualifiedName(), "My input");
}

 .....



 public void setField(PDDocument pdfDocument, String name, String value) throws 
 IOException {
        PDDocumentCatalog docCatalog = pdfDocument.getDocumentCatalog();
        PDAcroForm acroForm = docCatalog.getAcroForm();
        PDField field = acroForm.getField(name);
        if (field != null) {
            field.setValue(value);
        } else {
            System.err.println("No field found with name:" + name);
        }

    }

Please let me know if you need any other part of the code.

4

5 回答 5

2

pdfbox 中似乎存在一个错误,该错误发生在无法找到相关字体的各种情况下。我能找到的唯一解决方法是跳过在PDTextbox.setValue. 您可以通过执行以下操作“强制”更新值:

COSString fieldValue = new COSString("Awesome field value");
textbox.getDictionary().setItem(COSName.V, fieldValue);

据推测,在除极端情况之外的所有情况下,PDF 查看器都可以处理呈现字体,并且只需V为字段设置项目就足够了。主观上,我生成的文档在 Acrobat 和 OS X 预览中可以正常打开。

相关问题: https ://issues.apache.org/jira/browse/PDFBOX-1550

编辑添加:默认情况下,acrobat 似乎创建可见文本区域大小为 0 的字段。对于存在此问题的文档,您可以通过添加textbox.getDictionary().setItem(COSName.AP, null);并希望读者能够正确处理呈现外观来解决此问题。

于 2014-07-27T06:07:45.640 回答
0

我也有这个问题,问题是 PDF 没有嵌入使用的字体。

此外,Acrobat pro 的 Preflight 工具似乎无法修复 PDF。我最终重新创建了 PDF,现在它工作正常。

于 2015-01-14T11:15:35.060 回答
0

我在使用 PDF 时遇到了同样的问题,我最终通过编辑 PDF 表单字段(使用 Abobe Acrobat Pro)并设置特定字体来解决它。

问题是有问题的字段根本没有指定任何字体。

希望能帮助到你!

于 2014-05-06T11:31:47.403 回答
0

如果可行,请使用另一个 PDF,这意味着 PDFBox 与第一个 pdf 不兼容。

于 2013-07-01T09:23:58.097 回答
0

通过使用 Adob​​e Pro 并将 PDF 合并为一个,这发生在我身上。在此之后,生成的 PDF 无法与 PDFBox 一起使用,原始 PDF 也可以使用。经过一番研究,我发现合并过程破坏了字体信息。只需重置字体,它应该可以工作!

此致!

于 2015-01-22T12:26:36.293 回答