打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
C# / VB.NET 获取PDF文档的数字签名信息

文档中的数字签名具有不可否认性,可有效防伪防篡改。对文档中已有的数字签名信息,可通过一定方法获取,下面通过程序代码介绍如何来实现。程序中,使用了Spire.PDF.dll,版本:6.11.6,可自行在官网下载包,或者通过Nuget下载。下载后,在程序中添加引用dll文件。如下添加引用效果:

 

 

完成dll文件添加引用后,可参考如下代码来操作:

[C#]

using Spire.Pdf;using Spire.Pdf.Graphics;using Spire.Pdf.Security;using Spire.Pdf.Widget;using System;using System.Drawing;namespace GetSignature{    class Program    {        static void Main(string[] args)        {            //创建PdfDocument实例            PdfDocument pdf = new PdfDocument();            //加载含有签名的PDF文件            pdf.LoadFromFile("数字签名.pdf");            //获取域集合            PdfFormWidget pdfFormWidget = (PdfFormWidget)pdf.Form;            PdfFormFieldWidgetCollection pdfFormFieldWidgetCollection = pdfFormWidget.FieldsWidget;            //遍历域            for (int i = 0; i < pdfFormFieldWidgetCollection.Count; i++)            {                //判定是否为签名域                if (pdfFormFieldWidgetCollection[i] is PdfSignatureFieldWidget)                {                    //获取签名域                    PdfSignatureFieldWidget signatureFieldWidget = (PdfSignatureFieldWidget)pdfFormFieldWidgetCollection[i];                    //获取签名                    PdfSignature signature = signatureFieldWidget.Signature;                    String location = signature.LocationInfo;                    String reason = signature.Reason;                    String data = signature.Date.ToString();                    Console.WriteLine("签名位置信息:" + location + "\n" +                            "签名原因:" + reason + "\n" +                            "签名日期:" + data + "\n" +                            "文档中的签名坐标:X = " + signatureFieldWidget.Location.X + "  Y = " + signatureFieldWidget.Location.Y);                    Console.ReadLine();                }            }        }    }}

[VB.NET]

Imports Spire.PdfImports Spire.Pdf.GraphicsImports Spire.Pdf.SecurityImports Spire.Pdf.WidgetImports System.DrawingNamespace GetSignature    Class Program        Private Shared Sub Main(args As String())            '创建PdfDocument实例            Dim pdf As New PdfDocument()            '加载含有签名的PDF文件            pdf.LoadFromFile("数字签名.pdf")            '获取域集合            Dim pdfFormWidget As PdfFormWidget = DirectCast(pdf.Form, PdfFormWidget)            Dim pdfFormFieldWidgetCollection As PdfFormFieldWidgetCollection = pdfFormWidget.FieldsWidget            '遍历域            For i As Integer = 0 To pdfFormFieldWidgetCollection.Count - 1                '判定是否为签名域                If TypeOf pdfFormFieldWidgetCollection(i) Is PdfSignatureFieldWidget Then                    '获取签名域                    Dim signatureFieldWidget As PdfSignatureFieldWidget = DirectCast(pdfFormFieldWidgetCollection(i), PdfSignatureFieldWidget)                    '获取签名                    Dim signature As PdfSignature = signatureFieldWidget.Signature                    Dim location As [String] = signature.LocationInfo                    Dim reason As [String] = signature.Reason                    Dim data As [String] = signature.[Date].ToString()                    Console.WriteLine("签名位置信息:" + location + vbLf + "签名原因:" + reason + vbLf + "签名日期:" + data + vbLf + "文档中的签名坐标:X = " + signatureFieldWidget.Location.X + "  Y = " + signatureFieldWidget.Location.Y)                    Console.ReadLine()                End If            Next        End Sub    End ClassEnd Namespace

数字签名信息获取结果:

 

 

相关阅读推荐: C# 给PDF文档添加数字签名

 

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Java 获取PDF中的数字签名信息
Office 开发插件:查看编辑文档
Spire.Pdf 的各种操作总结
使用Spire.Office自制一个进行批量格式转换(Pdf转换为Word)的工具
C#/VB.NET 给 PDF 文档添加水印
C# 实现从PDF文档的指定区域内提取文本
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服