如何使用 C# 检查 PDF 文件已签名的次数,最好是 iTextSharp 5.5.11?我对任何其他 .NET PDF 库持开放态度,只要它能完成这项工作。
我想从我的硬盘驱动器中选择一个PDF文件,并在表格上显示PDF文件被签名的次数。
显示证书来源将是一个奖励。
谢谢。
由于 iText 同时存在于 Java 和 C# 中,并且 iText 的数字签名教程是用前者编写的,我将用 Java 给出答案,将其移植到 c# 应该没有问题:
可以使用SignatureUtil#getTotalRevisions()
来获取数字。它旨在为您提供文档中的签名数,或者如果在上次签名文档后应用了更改,则该数字加 1。
请检查C5_01_SignatureIntegrity。这里处理三份文件:第一份已经签署,但后来被修改,第二份由四人签署,第三份由四人签署,然后被修改。SignatureUtil#getTotalRevisions() 分别返回 2、4 和 5。
第一种和第三种情况的结果有点误导,但可以使用SignatureUtil#signatureCoversWholeDocument(String)
来检查上次修订是否与上次签名相对应。