C# 获取PDF中的数字签名证书

C# 获取PDF中的数字签名证书

编码文章call10242025-01-15 11:04:4016A+A-

PDF中的加数字签名是对文档权威性的有效证明。我们在向PDF文档添加签名时,需要准备可信任的签名证书。同时,对已有的签名,可验证签名是否有效,也可以获取文档中的签名证书信息。下面,以C#代码示例展示如何来获取PDF中的数字签名证书信息。

环境准备

需要在程序中导入Spire.Pdf.dll。这里以一个控制台应用程序为例,引用dll可选择以下两种方法中的任意一种即可:

方法1:打开“解决方案资源管理器”,鼠标右键点击“引用”,“添加引用”:

选择“浏览”,“浏览”,并找到本地路径BIN文件夹下的Spire.Pdf.dll文件:

添加到引用列表后,勾选,点击“OK”完成引用:

方法2:通过NuGet安装。

在VS程序中打开“解决方案资源管理器”,鼠标右键点击“引用”,“管理NuGet包”:

点击“搜索”,在搜索框中输入,点击包,安装:

或者通过PM控制台安装:

Install-Package Spire.PDF -Version 7.11.1


代码示例

实现读取签名的证书,本次代码主要分为以下步骤:

1. 实例化PdfDocument类的对象,并通过PdfDocument. LoadFromFile(string filename)方法加载PDF文档。

2. 通过PdfFormWidget. FieldsWidget属性获取PdfFormFieldWidgetCollection类的域集合

3. 通过for循环遍历所有域,并判断集合中的域是否为PdfSignatureFieldWidget类的签名域。

4. 获取PdfSignatureFieldWidget类的签名域后,通过其提供的PdfSignatureFieldWidget. Signature.Certificate属性获取签名证书,以及该属性下枚举的20余种方法(如下图)来获取证书的详细信息。

(本次代码中仅简单列举使用了2种方法获取证书信息。)

5. 最后通过控制台输出获取的证书信息。

using Spire.Pdf;

using Spire.Pdf.Widget;

using System;

namespace GetCertificateInfo

{

class Program

{

static void Main(string[] args)

{

//实例化PdfDocument类的对象,并加载PDF文档

PdfDocument pdf = new PdfDocument();

pdf.LoadFromFile("test.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];

//获取签名证书

string certificateInfo = signatureFieldWidget.Signature.Certificate.ToString();


//获取证书格式

string format = signatureFieldWidget.Signature.Certificate.GetFormat();

Console.WriteLine(certificateInfo+ "\n"+ "[CertificateFormat]\n " + format );

}

}

Console.ReadKey();

}

}

}


读取结果:

点击这里复制本文地址 以上内容由文彬编程网整理呈现,请务必在转载分享时注明本文地址!如对内容有疑问,请联系我们,谢谢!
qrcode

文彬编程网 © All Rights Reserved.  蜀ICP备2024111239号-4