使用Acrobat 9,如果我使用自签名证书签署PDF,然后在签名后编辑PDF,Acrobat将通知我文档上有有效签名,但文档也有未签名的更改。如果我再次签署PDF并查看签名面板,它将显示带有效签名的第一个签名修订,表示在签署第一个修订后进行了更改,然后显示带有效签名的第二个签名修订。 / p>
我正在尝试使用iTextSharp复制该行为。在代码中,我创建了一个PDF并对其进行签名。然后,我编辑PDF并再次签名。当我在Acrobat中打开文档时,它会显示两个版本,但会将第一个修订标记为无效签名,因为文档已被更改。根据我的收集,我认为iTextSharp正在签署整个文档,而不仅仅是该文档中的第一个修订版。我在PdfStamper和PdfSignatureAppearance构造函数中都将Append参数设置为true,但它似乎没有任何效果。
由于我可以使用Acrobat获得所需的结果,我假设我没有正确使用iTextSharp。任何人都可以对此有所了解吗?
答案 0 :(得分:1)
您必须更新现有PDF而不是完全重写它。将以下属性设置为true以启用更新。
PdfReader reader;
...
reader.Appendable = true;
答案 1 :(得分:0)
Adobe用我认为的图层来做这件事。 PDF的每个版本可能放在不同的层中,然后签名。如果iText支持图层,您可以以类似的方式完成。