首页 文章

PDF格式在填写pdfformfiller2后无法编辑

提问于
浏览
1

我目前正在编写一个脚本,将一组项目数据填充到模板PDF的给定表单字段中,然后将这些文档保存到存储库,供项目成员进一步编辑(文档中的字段比自动填充的字段多得多) .

模板PDF是我之前在Adobe InDesign中创建的,然后使用"Extended Features"保存在Adobe Acrobat Pro中,以便在免费的Acrobat Reader和pdfformfiller2中进行编辑 .

iText的这个小java包装器可以用utf8文本填充PDF表单,这对我的脚本非常有效 . 我使用的命令是:

java -jar pdfformfiller.jar doc1_template.pdf -f text_input.txt doc1_filled.pdf

问题是,在填充数据后,pdfformfiller2输出一个doc1_filled.pdf,它只能再次在Adobe Acrobat Pro中编辑 . 由于该脚本旨在自动运行,因此在脚本填充之后,我无法再使用“扩展功能”保存每个PDF . 是否有任何选项或修复包装代码来解决这个问题?

顺便说一句 . pdfformfiller2的选项“-flatten”已禁用 .

1 回答

  • 0

    pdfformfiller2未使用增量更新填写表单 . 因此,它会自动中断PDF中存在的任何签名 . (有关信息安全的背景cf. this answer . )

    特殊类型的签名,使用权签名是用于授予“扩展功能”的机制 . 因此,正如观察到的那样,pdfformfiller2打破了“扩展功能” .

    您可以尝试在替换后重新编译pdfformfiller2

    new PdfStamper(reader, os, '\0')
    

    通过

    new PdfStamper(reader, os, '\0', true)
    

    它使用增量更新 . (对于背景cf. this answer;在追加模式下,iText PdfStamper 生成增量更新.iText是pdfformfiller2使用的PDF库 . )

相关问题