在 PDF 簽名中獲取所有證書
Spire.PDF for .NET 是一款專門對 Word 文檔進(jìn)行操作的 .NET 類庫。致力于在于幫助開發(fā)人員輕松快捷高效地創(chuàng)建、編輯、轉(zhuǎn)換和打印 Microsoft Word 文檔,而無需安裝 Microsoft Word。
行號用于在每行文本旁邊顯示 Word 自動計算的行數(shù)。當(dāng)我們需要參考合同或法律文件等文檔中的特定行時,它非常有用。word中的行號功能允許我們設(shè)置起始值、編號間隔、與文本的距離以及行號的編號方式。使用 Spire.Doc,我們可以實現(xiàn)上述所有功能。本文將介紹如何將 HTML 轉(zhuǎn)換為 PDF。
歡迎加入spire技術(shù)交流群:767755948
Spire.PDF 允許獲取和驗證 PDF 文件中的特定簽名,現(xiàn)在從 3.8.82 版開始,Spire.PDF 支持獲取 PDF 簽名中的所有證書。在本文中,我們將向您展示如何使用 Spire.PDF 實現(xiàn)此任務(wù)的步驟。
為了演示,我們使用了一個包含兩個證書的 PDF 文件模板:
	 
 
代碼片段
第 1 步:實例化 PdfDocument 對象并加載 PDF 文件。
PdfDocument doc = new PdfDocument();
doc.LoadFromFile("UPS.pdf");
第 2 步:創(chuàng)建一個列表對象。
List<PdfSignature> signatures = new List<PdfSignature>();
第 3 步:從 PDF 文件中獲取所有簽名,并將其添加到列表對象中。
var form = (PdfFormWidget)doc.Form;
for (int i = 0; i < form.FieldsWidget.Count; ++i)
{
    var field = form.FieldsWidget[i] as PdfSignatureFieldWidget;
    if (field != null && field.Signature != null)
    {
        PdfSignature signature = field.Signature;
        signatures.Add(signature);
    }
}
第 4 步:從列表中獲取第一個簽名,然后從簽名中獲取所有證書。
PdfSignature signatureOne = signatures[0]; X509Certificate2Collection collection = signatureOne.Certificates;
有效截圖:
 
 
完整代碼:
using System;
using System.Collections.Generic;
using System.Security.Cryptography.X509Certificates;
using Spire.Pdf;
using Spire.Pdf.Security;
using Spire.Pdf.Widget;
namespace Get_all_certificates_in_PDF_signature
{
    class Program
    {
        static void Main(string[] args)
        {
            PdfDocument doc = new PdfDocument();
            doc.LoadFromFile("UPS.pdf");
            List<PdfSignature> signatures = new List<PdfSignature>();
            var form = (PdfFormWidget)doc.Form;
            for (int i = 0; i < form.FieldsWidget.Count; ++i)
            {
                var field = form.FieldsWidget[i] as PdfSignatureFieldWidget;
                if (field != null && field.Signature != null)
                {
                    PdfSignature signature = field.Signature;
                    signatures.Add(signature);
                }
            }
            PdfSignature signatureOne = signatures[0];
            X509Certificate2Collection collection = signatureOne.Certificates;
            foreach (var certificate in collection)
            {
                Console.WriteLine(certificate.Subject);
            }            
            Console.ReadKey();
        }
    }
}                
            
 QQ交談
QQ交談 在線咨詢
在線咨詢 
                 
                
 渝公網(wǎng)安備
            50010702500608號
渝公網(wǎng)安備
            50010702500608號
             
            
 客服熱線
客服熱線