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文档添加数字签名

(0)

相关推荐

  • Java 创建 PDF 文件包的两种方法

    Java 创建 PDF 文件包的两种方法

  • C# 加密、解密PDF文档(基于Spire.Cloud.SDK for .NET)

    Spire.Cloud.SDK for .NET提供了接口PdfSecurityApi可用于加密.解密PDF文档.本文将通过C#代码演示具体加密及解密方法. 使用工具: Spire.Cloud.SDK ...

  • C#/VB.NET 在PDF中添加文件包(Portfolio)

    PDF文件包(Portfolio)允许用户将多种不同类型的文件如Word.Excel.PDF.PowerPoint和图片等集合到一个PDF文件中,用户可以打开.更改PDF文件包中的单个文件.添加文件包 ...

  • C# 添加文本、图片到PDF文档(基于Spire.Cloud.SDK for .NET)

    Spire.Cloud.SDK for .NET提供了接口PdfTextApi及PdfImagesApi用于添加文本和图片到PDF文档,添加文本时,可格式化文本样式,包括文本字体类型.字号.字体样式. ...

  • 扩展标准库而不是修改标准库

    有一些用户反馈这个问题时还能保持礼貌,而有一些用户就直接飙脏话对我进行辱骂,仿佛更新标准库 -- 侵犯了他什么神圣的权利. 我今天特别解释一下这个问题: 1.aardio 并没有自动升级的功能,一定是 ...

  • Java 获取PDF中的数字签名信息

    一.概述及程序环境要求 本文以Java代码演示如何获取PDF文档中的数字签名信息,包括签名人.签名位置.日期.原因.联系方式.签名在文档中的坐标等等. 程序环境包括: Spire.Pdf.jar(ja ...

  • 在URL中包含签名

    除了使用Authorization Header,您还可以在URL中加入签名信息,以便将该URL转给第三方实现授权访问. 注意 使用在URL中签名的方式,会将您授权的数据在过期时间内曝露在互联网上,请 ...

  • 电脑上怎么合并PDF文档?

    电脑文件夹内如果有相同类型的PDF文档,那么为了便于整理和查看,我们就可以将这些文档合并到一起,下面就是合并方法! 合并之前我们需要在电脑上安装adobe acrobat DC这款PDF阅读器,并且在 ...

  • 景观工程清包工报价.pdf 文档全文预览

    园建基础报价 序号 项目 单位 大约工程量 单价(元) 备注 1 夯实 ㎡ 2 2 开挖整平 ㎡ 4.5 3 碎石平整 ㎡ 3 4 平面混凝土浇筑 ㎡ 9.5 5 地面园路支模( 15公分以下) m ...

  • ABBYY FineReader PDF 15如何快速地为PDF文档添加页眉页脚?

    ABBYY FineReader PDF 15配备了便捷的页眉和页脚定制功能,可供添加页码.Bates编号.日期或其他定制内容,让PDF文档的页眉页脚编辑变得更加简单.接下来,我们一起来看看怎么应用这 ...

  • 如何使用ABBYY 15水印功能增强PDF文档安全性

    随着社会版权意识的增强,很多人都会为自己创作的图像.文档等添加水印,防止其他人在未经允许的情况下盗用作品. 如果我们希望为制作的PDF文档添加水印的话,可使用ABBYY FineReader PDF ...

  • 怎么才能防止他人复制PDF文档的文字?

    PDF文档不仅具有良好的兼容性,而且也具有良好的保密性,因此受到广泛的应用.但并不是所有的PDF文档都具有良好的保密性,一些文本型的PDF文档是允许他人复制.搜索的. 那么,我们怎么才能增强这些文本型 ...

  • word导出不同格式视频:当前页导出pdf文档及更改文档类型

    word导出不同格式视频|word导出当前页视频|word导出pdf文档视频|word更改文档类型视频 本视频教程由部落窝教育分享.

  • ABBYY FineReader PDF 15助你轻松编辑PDF文档

    每年经过双十一的激战后,都会有一些专门分析数据的网站分享"战况"报告,但这些报告大部分都是以PDF文档的形式分享的,不便于信息的获取,这时候ABBYY FineReader PDF ...

  • 使用ABBYY将图像文件转换成排版整齐的PDF文档

    在阅读书籍时,很多人都会习惯将有价值的内容使用手机拍摄为图像,方便后续查看使用.但图像文件较难归档整理,且无法搜索使用,那么,怎么才能更好地使用这些拍摄的资料? 其实,我们可以使用专业的OCR文本识别 ...

  • 使用ABBYY 15将PDF文档转换为epub文件

    epub文件是一种应用范围很广的电子书文件格式,相信喜欢阅读电子书的朋友不会对其感到陌生.epub文件可适应不同的屏幕大小,相比于PDF文档,更适合用于移动阅读设备. 那么,怎么才能将PDF文档转换为 ...