欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C# 獲取PDF中的數(shù)字簽名證書(shū)

 更新時(shí)間:2021年11月26日 11:07:55   作者:E-iceblue  
PDF中的加數(shù)字簽名是對(duì)文檔權(quán)威性的有效證明。本文將以C#代碼示例展示如何來(lái)獲取PDF中的數(shù)字簽名證書(shū)信息。感興趣的小伙伴可以學(xué)習(xí)一下

PDF中的加數(shù)字簽名是對(duì)文檔權(quán)威性的有效證明。我們?cè)谙騊DF文檔添加簽名時(shí),需要準(zhǔn)備可信任的簽名證書(shū)。同時(shí),對(duì)已有的簽名,可驗(yàn)證簽名是否有效,也可以獲取文檔中的簽名證書(shū)信息。下面,以C#代碼示例展示如何來(lái)獲取PDF中的數(shù)字簽名證書(shū)信息。

環(huán)境準(zhǔn)備

需要在程序中導(dǎo)入Spire.Pdf.dll。這里以一個(gè)控制臺(tái)應(yīng)用程序?yàn)槔?,引用dll可選擇以下兩種方法中的任意一種即可:

方法1:打開(kāi)“解決方案資源管理器”,鼠標(biāo)右鍵點(diǎn)擊“引用”,“添加引用”:

選擇“瀏覽”,“瀏覽”,并找到本地路徑BIN文件夾下的Spire.Pdf.dll文件:

添加到引用列表后,勾選,點(diǎn)擊“OK”完成引用:

方法2:通過(guò)NuGet安裝。

在VS程序中打開(kāi)“解決方案資源管理器”,鼠標(biāo)右鍵點(diǎn)擊“引用”,“管理NuGet包”:

點(diǎn)擊“搜索”,在搜索框中輸入,點(diǎn)擊包,安裝:

或者通過(guò)PM控制臺(tái)安裝:

Install-Package Spire.PDF -Version 7.11.1

代碼示例

實(shí)現(xiàn)讀取簽名的證書(shū),本次代碼主要分為以下步驟:

1. 實(shí)例化PdfDocument類(lèi)的對(duì)象,并通過(guò)PdfDocument. LoadFromFile(string filename)方法加載PDF文檔。

2. 通過(guò)PdfFormWidget. FieldsWidget屬性獲取PdfFormFieldWidgetCollection類(lèi)的域集合

3. 通過(guò)for循環(huán)遍歷所有域,并判斷集合中的域是否為PdfSignatureFieldWidget類(lèi)的簽名域。

4. 獲取PdfSignatureFieldWidget類(lèi)的簽名域后,通過(guò)其提供的PdfSignatureFieldWidget. Signature.Certificate屬性獲取簽名證書(shū),以及該屬性下枚舉的20余種方法(如下圖)來(lái)獲取證書(shū)的詳細(xì)信息。

(本次代碼中僅簡(jiǎn)單列舉使用了2種方法獲取證書(shū)信息。)

5. 最后通過(guò)控制臺(tái)輸出獲取的證書(shū)信息。

C#

using Spire.Pdf;
using Spire.Pdf.Widget;
using System;

namespace GetCertificateInfo
{
    class Program
    {
        static void Main(string[] args)
        {
            //實(shí)例化PdfDocument類(lèi)的對(duì)象,并加載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];

                    //獲取簽名證書(shū)
                    string certificateInfo = signatureFieldWidget.Signature.Certificate.ToString();
                    
                    //獲取證書(shū)格式
                    string format = signatureFieldWidget.Signature.Certificate.GetFormat();

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

VB.NET

Imports Spire.Pdf
Imports Spire.Pdf.Widget

Namespace GetCertificateInfo
    Class Program
        Private Shared Sub Main(args As String())
            '實(shí)例化PdfDocument類(lèi)的對(duì)象,并加載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)

                    '獲取簽名證書(shū)
                    Dim certificateInfo As String = signatureFieldWidget.Signature.Certificate.ToString()

                    '獲取證書(shū)格式
                    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 Class
End Namespace

讀取結(jié)果

到此這篇關(guān)于C# 獲取PDF中的數(shù)字簽名證書(shū)的文章就介紹到這了,更多相關(guān)C# 內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論