gpt4 book ai didi

java - PDF表单由pdfformfiller2填写后不可编辑

转载 作者:太空宇宙 更新时间:2023-11-04 13:36:50 24 4
gpt4 key购买 nike

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

模板 PDF 是我之前在 Adob​​e InDesign 中创建的,然后使用 Adob​​e 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,该文件只能在 Adob​​e Acrobat Pro 中再次编辑。由于该脚本旨在自动运行,因此在脚本填充每个 PDF 后,我无法再次使用“扩展功能”保存每个 PDF。包装器代码中是否有任何选项或修复来解决此问题?

顺便说一句。 pdfformfiller2 的“-flatten”选项被禁用。

最佳答案

pdfformfiller2不使用增量更新来填写表单。因此,它会自动破坏 PDF 中存在的任何签名。 (背景信息参见 this answer 信息安全。)

一种特殊类型的签名,即使用权签名,是用于授予“扩展​​功能”的机制。因此,正如观察到的,pdfformfiller2 破坏了“扩展功能”。

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

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

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

它利用增量更新。 (背景参见 this answer;在附加模式下,iText PdfStamper 生成增量更新。iText 是 pdfformfiller2 使用的 PDF 库。)

关于java - PDF表单由pdfformfiller2填写后不可编辑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31612204/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com