PDFBOX Flatten Acro-form 导致文本从原始位置移位

Posted

技术标签:

【中文标题】PDFBOX Flatten Acro-form 导致文本从原始位置移位【英文标题】:PDFBOX Flatten Acro-form causes displaced text from original location 【发布时间】:2021-01-22 02:50:15 【问题描述】:

我使用 PDFBOX 填写表格,然后使用 api 将其展平。生成的 PDF 未正确显示

Link TO PDF

我使用的是 PDFBox 2.0.21

展平表单的示例代码

    val sourceDocument = getTemplate(templatePath)
    val form = sourceDocument.documentCatalog.acroForm
    fillHeader(form, headerParam, currentPage, totalPages, it)
    fillData(form, it, currentPage)
    form.flatten(form.fieldTree.toList(),false)

完整代码发布在Full code

我不确定这个问题是 PDFBox 还是 Adob​​e

需要帮助

【问题讨论】:

它适用于 2.0.22,但我只测试了一个字段。您应该使用 2.0.22 重新测试,因为修复了与扁平化相关的错误,请参阅 issues.apache.org/jira/browse/PDFBOX-4958 我使用了源代码下载中的 SetField.java 示例并添加了pdf.getDocumentCatalog().getAcroForm().flatten();。对我来说,填充的字段是黑色的,而不是蓝色的。 什么有效 - 更新到 2.0.22 ? 将版本更新到 2.0.22 对我有用 【参考方案1】:

更新到版本 2.0.22 解决了这个扁平化问题,在 here 中进行了描述。 2.0.22 版本于 2020 年底发布。

始终使用最新版本,使用maven versions plugin 检测是否存在新版本。

【讨论】:

以上是关于PDFBOX Flatten Acro-form 导致文本从原始位置移位的主要内容,如果未能解决你的问题,请参考以下文章

PDFBox - 查找页面尺寸

PDFbox 1.7.0 - 如何在使用PDFBox添加新图像时保留现有图像?

PDFBox 2.0 和 TTC 字体

在 pdfbox 2.00 中使用 PDFMergerUtility 合并文档

使用 PDFbox 确定文档中单词的坐标

不知道如何运行此pdfbox注释示例