使用 Acrobat 签名后,以编程方式签名的 PDF 文档未获得绿色复选标记 Reader

Programmatically signed PDF document does not get the green checkmark after being signed using Acrobat Reader

我已经编写了一个签署 PDF 文档的应用程序,现在我可以签署任何未签署的 PDF 文档,并且 Adob​​e Reader 显示绿色复选标记。而且我可以用多个签名来签署一个文件,结果还可以。

但是如果我尝试使用 Adob​​e Reader 对文档签名,当我再次签名时,结果是最后一个签名之前的任何签名都没有绿色复选标记,因为 Acrobat 认为该文档已经改变。然后,如果我再次使用 Adob​​e Reader 和我的应用程序签署文档,下一个签名将再次获得绿色标记。 第一个adobe签名出现问题,但我找不到原因。

工作流程:

  1. 使用 Acrobat 签名 1 => ok
  2. 用我的应用程序签名 2 => 以前的签名无效,但可以
  3. 使用 Acrobat 的签名 3 => 签名 1 无效,但 2 和 3 可以
  4. 我的应用签名 4 => 签名 1 无效,但 2、3 和 4 可以

你能帮我找出并纠正问题吗?

提前谢谢你。

文件:

您更改 AcroForm 词典 DA 默认外观条目。

在 Adob​​e 签名的文档中,AcroForm 字典如下所示:

<</DA(/Helv 0 Tf 0 g )/DR<</Encoding<</PDFDocEncoding 8 0 R>>/Font<</Helv 6 0 R/MyriadPro-Regular 27 0 R/ZaDb 7 0 R>>>>/Fields[26 0 R]/SigFlags 3>>

签署该文件后,它变成了:

<</DA(/Helv 0 Tf 0 g)/DR<</Encoding<</PDFDocEncoding 8 0 R>>/Font<</Helv 6 0 R/MyriadPro-Regular 27 0 R/ZaDb 7 0 R>>>>/Fields[26 0 R 35 0 R]/SigFlags 3>>

即您删除了 DA 条目中的尾随 space 字符。