溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

C#中怎么給PDF 添加可視化和不可見數(shù)字簽名

發(fā)布時間:2021-08-10 11:20:08 來源:億速云 閱讀:139 作者:Leah 欄目:開發(fā)技術(shù)

這期內(nèi)容當中小編將會給大家?guī)碛嘘P(guān)C#中怎么給PDF 添加可視化和不可見數(shù)字簽名,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。


1. 在VS程序中通過Nuget安裝 Spire.PDF for .NET 版本7.8.2,安裝步驟如下:

鼠標右鍵點擊“引用”,“管理Nuget包”

C#中怎么給PDF 添加可視化和不可見數(shù)字簽名

點擊“瀏覽”,在搜索框中輸入“Spire.PDF ”,點擊選擇搜索到的包,點擊“安裝”。

C#中怎么給PDF 添加可視化和不可見數(shù)字簽名

在彈出的窗口點擊“OK”

C#中怎么給PDF 添加可視化和不可見數(shù)字簽名

等待安裝完成。安裝結(jié)果如圖:

C#中怎么給PDF 添加可視化和不可見數(shù)字簽名

2.在VS程序中添加如下代碼添加數(shù)字簽名

2.1 添加可視化數(shù)字簽名

C#

using Spire.Pdf;
using Spire.Pdf.Graphics;
using Spire.Pdf.Interactive.DigitalSignatures;
using System.Drawing;
using System.Security.Cryptography.X509Certificates;

namespace VisibleDigitalSignature
{
    class Program
    {
        static void Main(string[] args)
        {
            //加載PDF測試文檔
            PdfDocument pdf = new PdfDocument();
            pdf.LoadFromFile("test.pdf");

            //獲取PDF文檔中的第5頁
            PdfPageBase page = pdf.Pages[4];

            //在頁面中的指定位置添加可視化簽名
            X509Certificate2 x509 = new X509Certificate2("cer.pfx", "e-iceblue");
            PdfOrdinarySignatureMaker signatureMaker = new PdfOrdinarySignatureMaker(pdf, x509);
            IPdfSignatureAppearance signatureAppearance = new PdfCustomSignatureAppearance();            
            signatureMaker.MakeSignature("signName_" , page, page.ActualSize.Width-240,page.ActualSize.Height-200,150,150, signatureAppearance);

            //保存文檔
            pdf.SaveToFile("VisibleDigitalSignature.pdf", FileFormat.PDF);
            System.Diagnostics.Process.Start("VisibleDigitalSignature.pdf");
            pdf.Close();   
            
        }
        public class PdfCustomSignatureAppearance : IPdfSignatureAppearance
        {
            public void Generate(PdfCanvas g)
            {
                float fontSize = 15;
                PdfTrueTypeFont font = new PdfTrueTypeFont(new Font("Arial", fontSize), true);
                float lineHeight = fontSize; g.DrawString("Sign Here:", font, PdfBrushes.Black, new PointF(0, 0));
                g.DrawImage(PdfImage.FromFile("sign.png"), new PointF(20, 20));
            }
        }

    }
}

Vb.net

Imports Spire.Pdf
Imports Spire.Pdf.Graphics
Imports Spire.Pdf.Interactive.DigitalSignatures
Imports System.Drawing
Imports System.Security.Cryptography.X509Certificates

Namespace VisibleDigitalSignature
    Class Program
        Private Shared Sub Main(args As String())
            '加載PDF測試文檔
            Dim pdf As New PdfDocument()
            pdf.LoadFromFile("test.pdf")

            '獲取PDF文檔中的第5頁
            Dim page As PdfPageBase = pdf.Pages(4)

            '在頁面中的指定位置添加可視化簽名
            Dim x509 As New X509Certificate2("cer.pfx", "e-iceblue")
            Dim signatureMaker As New PdfOrdinarySignatureMaker(pdf, x509)
            Dim signatureAppearance As IPdfSignatureAppearance = New PdfCustomSignatureAppearance()
            signatureMaker.MakeSignature("signName_", page, page.ActualSize.Width - 240, page.ActualSize.Height - 200, 150, 150, _
                signatureAppearance)

            '保存文檔
            pdf.SaveToFile("VisibleDigitalSignature.pdf", FileFormat.PDF)
            System.Diagnostics.Process.Start("VisibleDigitalSignature.pdf")
            pdf.Close()

        End Sub
        Public Class PdfCustomSignatureAppearance
            Implements IPdfSignatureAppearance
            Public Sub Generate(g As PdfCanvas)
                Dim fontSize As Single = 15
                Dim font As New PdfTrueTypeFont(New Font("Arial", fontSize), True)
                Dim lineHeight As Single = fontSize
                g.DrawString("Sign Here:", font, PdfBrushes.Black, New PointF(0, 0))
                g.DrawImage(PdfImage.FromFile("sign.png"), New PointF(20, 20))
            End Sub
        End Class

    End Class
End Namespace

可視化數(shù)字簽名效果:

C#中怎么給PDF 添加可視化和不可見數(shù)字簽名

2.2 添加不可見數(shù)字簽名

C#

using Spire.Pdf;
using Spire.Pdf.Interactive.DigitalSignatures;
using System.Security.Cryptography.X509Certificates;

namespace InvisibleDigitalSignature
{
    class Program
    {
        static void Main(string[] args)
        {
            //初始化一個PdfDocument實例
            PdfDocument pdf = new PdfDocument();

            //加載PDF文檔
            pdf.LoadFromFile("test.pdf");

            //添加簽名
            X509Certificate2 x509 = new X509Certificate2("cer.pfx", "e-iceblue");
            PdfOrdinarySignatureMaker signatureMaker = new PdfOrdinarySignatureMaker(pdf, x509);
            signatureMaker.MakeSignature("signName");
            signatureMaker.SetLocation("Chengdu");
            signatureMaker.SetReason("Edit limited");            
           
            //保存文檔
            pdf.SaveToFile("result.pdf", FileFormat.PDF);
            System.Diagnostics.Process.Start("result.pdf");
        }
    }
}

Vb.net

Imports Spire.Pdf
Imports Spire.Pdf.Interactive.DigitalSignatures
Imports System.Security.Cryptography.X509Certificates

Namespace InvisibleDigitalSignature
    Class Program
        Private Shared Sub Main(args As String())
            '初始化一個PdfDocument實例
            Dim pdf As New PdfDocument()

            '加載PDF文檔
            pdf.LoadFromFile("test.pdf")

            '添加簽名
            Dim x509 As New X509Certificate2("cer.pfx", "e-iceblue")
            Dim signatureMaker As New PdfOrdinarySignatureMaker(pdf, x509)
            signatureMaker.MakeSignature("signName")
            signatureMaker.SetLocation("Chengdu")
            signatureMaker.SetReason("Edit limited")

            '保存文檔
            pdf.SaveToFile("result.pdf", FileFormat.PDF)
            System.Diagnostics.Process.Start("result.pdf")
        End Sub
    End Class
End Namespace

不可見數(shù)字簽名效果:

C#中怎么給PDF 添加可視化和不可見數(shù)字簽名

上述就是小編為大家分享的C#中怎么給PDF 添加可視化和不可見數(shù)字簽名了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關(guān)知識,歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI