我有一个识别用户的数字证书.我需要用它来数字签署pdf文件.
有没有人有一个不使用第三方组件的例子?我需要完成这项工作,但要完全理解事情是如何完成的将是很好的.
C#示例请:)
开源的iTextSharp库将允许您执行此操作.这是一篇解释如何对pdf文件进行数字签名的帖子.如果您不想使用第三方库,那么您可以自己实现它,但这可能是一项艰巨的任务 - >您可以从阅读pdf规范开始(8.6MB)
正确的PDF签名是一项非常复杂的任务.存在许多不符合PDF规范的文件(破损的外部参照等),并且您的代码必须处理所有这些文件.然后各种Acrobat版本以不同方式处理签名字段中的某些内容.因此,如果您需要执行任务(而不是研究它是如何工作的),您应该依赖第三方解决方案,例如我们的PDFBlackbox组件.
在不使用第三方组件的情况下对PDF文档进行数字签名需要大量工作,并且通常最好避免使用.
组件为您完成所有艰苦的工作,因此您不必这样做.您应该会发现有一些优秀的免费PDF组件可以满足您的需求.
以下用C#编写的示例显示了使用ABCpdf对PDF文档进行数字签名是多么简单:
Doc theDoc = new Doc(); theDoc.Read(Server.MapPath("../Rez/Authorization.pdf")); Signature theSig = (Signature)theDoc.Form["Signature"]; theSig.Location = "Washington"; theSig.Reason = "Schedule Agreed"; theSig.Sign(Server.MapPath("../Rez/JohnSmith.pfx"), "111111"); theDoc.Save(Server.MapPath("Signed.pdf"));
来源:ABCpdf文档 - 签名方法