Skip to main content
 首页 » 编程设计

python之pdftk之fill_form 导致 "This document contained certain rights"对话框

2025年05月04日11kerrycode

我正在使用 pdftk以及用于从 FDF 数据填写 PDF 表单的 fill_form 命令。

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

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

谁能解释为什么我会收到“此文档包含...”对话框以及如何摆脱它?


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

作为起点,我使用了 Adob​​es example interactive form from here .

我应用了 pdftk 命令 dump_data_fields 来建立 PDF 表单中输入字段的名称,然后基于此我使用 fdfgen library 生成了带有一些示例数据的 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 

请您参考如下方法:

这是一种方式

  1. pdftk interactiveform_enabled.pdf fill_form interactiveform_enabled.fdf output 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/