如何使用修订版来避免PDF中的数字签名失效?

时间:2009-11-20 21:02:32

标签: pdf itextsharp itext digital-signature

使用Acrobat 9,如果我使用自签名证书签署PDF,然后在签名后编辑PDF,Acrobat将通知我文档上有有效签名,但文档也有未签名的更改。如果我再次签署PDF并查看签名面板,它将显示带有效签名的第一个签名修订,表示在签署第一个修订后进行了更改,然后显示带有效签名的第二个签名修订。 / p>

我正在尝试使用iTextSharp复制该行为。在代码中,我创建了一个PDF并对其进行签名。然后,我编辑PDF并再次签名。当我在Acrobat中打开文档时,它会显示两个版本,但会将第一个修订标记为无效签名,因为文档已被更改。根据我的收集,我认为iTextSharp正在签署整个文档,而不仅仅是该文档中的第一个修订版。我在PdfStamper和PdfSignatureAppearance构造函数中都将Append参数设置为true,但它似乎没有任何效果。

由于我可以使用Acrobat获得所需的结果,我假设我没有正确使用iTextSharp。任何人都可以对此有所了解吗?

2 个答案:

答案 0 :(得分:1)

您必须更新现有PDF而不是完全重写它。将以下属性设置为true以启用更新。

PdfReader reader;
...
reader.Appendable = true;

答案 1 :(得分:0)

Adob​​e用我认为的图层来做这件事。 PDF的每个版本可能放在不同的层中,然后签名。如果iText支持图层,您可以以类似的方式完成。