千家信息网

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

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,C#如何获取PDF中的数字签名证书,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。PDF中的加数字签名是对文档权威性的有效证明。我们在向P
千家信息网最后更新 2026年11月02日C#如何获取PDF中的数字签名证书

C#如何获取PDF中的数字签名证书,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

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. 最后通过控制台输出获取的证书信息。

C#

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();                  }    }}

VB.NET

Imports Spire.PdfImports Spire.Pdf.WidgetNamespace GetCertificateInfo    Class Program        Private Shared Sub Main(args As String())            '实例化PdfDocument类的对象,并加载PDF文档            Dim pdf As New PdfDocument()            pdf.LoadFromFile("test.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 certificateInfo As String = signatureFieldWidget.Signature.Certificate.ToString()                    '获取证书格式                    Dim format As String = signatureFieldWidget.Signature.Certificate.GetFormat()                    Console.WriteLine(Convert.ToString((certificateInfo & Convert.ToString(vbLf)) + "[CertificateFormat]" & vbLf & " ") & format)                End If            Next            Console.ReadKey()        End Sub    End ClassEnd Namespace

读取结果

看完上述内容,你们掌握C#如何获取PDF中的数字签名证书的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注行业资讯频道,感谢各位的阅读!

证书 方法 文档 信息 数字 数字签名 代码 C# 实例 对象 属性 控制台 程序 控制 管理 有效 内容 文件 方案 更多 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网中国科技 互联网科技的发展 亿策互联网科技 上海致骋互联网科技 撒么互联网科技公司 科技伦理 互联网公司 互联网教育科技公司vipkid 汽车互联网创新科技园 互联网金融科技公司干啥的 彤创互联网科技有限公司 广州富喜互联网络科技 有人说阿里系是互联网科技企业 九思连强互联网电子科技有限公司 互联网金融运营模式中的金融科技 互联网科技收购价值 易租星互联网科技有限公司 米泉互联网科技专业怎么样 青岛互联网科技园 宁波允成互联网科技有限公司 伍佰万互联网科技是干嘛的 广东万易互联网科技有限公司惠州分公司 互联网科技公司华为 科技制造互联网公司 互联网金融科技委员会 贵州叶脉互联网科技有限公司所属行业 互联网软件和科技 洛阳共同富裕互联网科技有限公司 四川互联网展示科技馆设计 卡尔迅互联网科技有限公司 昆明中奇联合互联网科技
0