对PDF文档进行数字签名时添加可信时间戳,可以有效确认文档内容(如合同、协议)的生成时间。本教程将展示如何使用Spire.PDF对PDF添加带时间戳的电子签名。
C#
//创建PdfDocument对象,并加载文档
PdfDocument doc = new PdfDocument();
doc.LoadFromFile(@"C:\Users\Administrator\Desktop\example.pdf");
//加载pfx证书
PdfCertificate cert = new PdfCertificate(@"C:\Users\Administrator\Desktop\gary.pfx", "e-iceblue");
//添加数字签名到指定位置
PdfSignature signature = new PdfSignature(doc, doc.Pages[0], cert, "signature");
signature.Bounds = new RectangleF(new PointF(350, 550), new SizeF(200, 100));
//设置数字签名内容
signature.SignDetailsFont = new PdfTrueTypeFont(new Font("宋体", 10f, FontStyle.Regular), true);
signature.NameLabel = "签字人:Gary";
signature.LocationInfoLabel = "地点:";
signature.LocationInfo = "中国,成都";
signature.ReasonLabel = "原因: ";
signature.Reason = "证明文档有效性";
signature.DateLabel = "日期: ";
signature.Date = DateTime.Now;
signature.ContactInfoLabel = "联系电话: ";
signature.ContactInfo = "028-81705109";
signature.DocumentPermissions = PdfCertificationFlags.AllowFormFill | PdfCertificationFlags.ForbidChanges;
signature.GraphicsMode = GraphicMode.SignImageAndSignDetail;
signature.SignImageSource = PdfImage.FromFile(@"C:\Users\Administrator\Desktop\company-logo.jpg");
//配置时间戳服务器
string url = "http://timestamp.wosign.com/rfc3161";
signature.ConfigureTimestamp(url);
//保存文档
doc.SaveToFile("output.pdf");
VB.NET
'创建PdfDocument对象,并加载文档
Dim doc As New PdfDocument()
doc.LoadFromFile("C:\Users\Administrator\Desktop\example.pdf")
'加载pfx证书
Dim cert As New PdfCertificate("C:\Users\Administrator\Desktop\gary.pfx", "e-iceblue")
'添加数字签名到指定位置
Dim signature As New PdfSignature(doc, doc.Pages(0), cert, "signature")
signature.Bounds = New RectangleF(New PointF(350, 550), New SizeF(200, 100))
'设置数字签名内容
signature.SignDetailsFont = New PdfTrueTypeFont(New Font("宋体", 10F, FontStyle.Regular), True)
signature.NameLabel = "签字人:Gary"
signature.LocationInfoLabel = "地点:"
signature.LocationInfo = "中国,成都"
signature.ReasonLabel = "原因: "
signature.Reason = "证明文档有效性"
signature.DateLabel = "日期: "
signature.[Date] = DateTime.Now
signature.ContactInfoLabel = "联系电话: "
signature.ContactInfo = "028-81705109"
signature.DocumentPermissions = PdfCertificationFlags.AllowFormFill Or PdfCertificationFlags.ForbidChanges
signature.GraphicsMode = GraphicMode.SignImageAndSignDetail
signature.SignImageSource = PdfImage.FromFile("C:\Users\Administrator\Desktop\company-logo.jpg")
'配置时间戳服务器
Dim url As String = "http://timestamp.wosign.com/rfc3161"
signature.ConfigureTimestamp(url)
'保存文档
doc.SaveToFile("output.pdf")