如何使用C#(最好是iTextSharp 5.5.11)检查PDF文件已签名多少次?只要能完成工作,我就对其他任何.NET PDF库都开放。
我想从硬盘驱动器中选择一个PDF文件,并在表格上显示对该PDF文件进行了多少次签名。
显示证书来源将是一个奖励。
谢谢。
答案 0 :(得分:2)
由于iText在Java和C#中都存在,并且Digital Signatures tutorial for iText是用前一种语言编写的,因此我将以Java给出答案,将其移植到c#应该没有问题:
一个人可以使用SignatureUtil#getTotalRevisions()
来获取号码。它的设计目的是为您提供文档中的签名数,如果在上次签名后才进行更改,则该数字加一个。
请检查C5_01_SignatureIntegrity。这里处理了三份文件:第一份已经签名,但随后进行了修改,第二份由四个人签名,第三份已经由4人签名,然后进行了修改。 SignatureUtil#getTotalRevisions()分别为它们返回2、4和5。
在第一种和第三种情况下的结果有点误导,但是可以使用SignatureUtil#signatureCoversWholeDocument(String)
来检查最后一个修订是否与最后一个签名相对应。