2

我正在使用pdftkfill_form命令从 FDF 数据中填写 PDF 表单。

当我执行命令时,PDF 输出创建成功,但打开 PDF 时除外:

  • Acrobat 阅读器中出现一个对话框,显示“此文档包含在 Adob​​e Reader 中启用特殊功能的某些权限。该文档自创建以来已更改,这些权限不再有效。请联系作者获取该文档的原始版本。 "

谁能解释为什么我得到“这个文件包含......”对话框以及如何摆脱它?


作为一些背景,这是我的过程。

作为起点,我使用了此处的 Adob​​e 示例交互式表单

我应用了 pdftk 命令dump_data_fields来建立 PDF 表单中输入字段的名称,然后我使用fdfgen 库生成了一个带有一些示例数据的 FDF,如下所示:

#!python
from fdfgen import forge_fdf
fields = []
fields.append(('Name_Last','Peters'))
fields.append(('Name_First','John'))
fdf = forge_fdf("",fields,[],[],[])
fdf_file = open(".\\dataOut\\adobe-reference-interactiveform_enabled.fdf","w")
fdf_file.write(fdf)
fdf_file.close()

然后我执行命令:

pdftk.exe ".\dataIn\adobe-reference-interactiveform_enabled.pdf" fill_form ".\dataOut\adobe-reference-interactiveform_enabled.fdf" output ".\dataOut\adobe-reference-interactiveform_enabled_PostProcessing1.pdf" flatten verbose
4

1 回答 1

1

这是一种方法

  1. pdftk interactiveform_enabled.pdf fill_form interactiveform_enabled.fdf 输出 flattened.pdf flatten

  2. pdf2ps flattened.pdf flattened_nowarn.ps

  3. ps2pdf flattened_nowarn.ps flattened_nowarn.pdf

acroread flattened.pdf <-- 显示警告

acroread flattened_nowarn.pdf <-- 没有警告

但是请注意,flattened_nowarn.pdf 将是 PDF 版本 1.4,而原始版本是 1.6,因此它可能会丢失内容。例如,便笺不会显示。

执行此操作的官方方法是使用 Adob​​e Acrobat,但我没有,因此无法对其进行测试。请参阅http://blog.tangcs.com/2011/09/03/pdf-this-document-contained-certain-rights-to-enable-special-features-in-adobe-reader/

于 2012-03-16T03:46:13.147 回答