最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C#和vb.net實現PDF 添加可視化和不可見數字簽名

 更新時間:2021年08月10日 08:38:12   作者:E-iceblue  
本文通過C#程序代碼展示如何給PDF文檔添加可視化數字簽名和不可見數字簽名。文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文通過C#程序代碼展示如何給PDF文檔添加可視化數字簽名和不可見數字簽名。可視化數字簽名,即在PDF文檔中的指定頁面位置添加簽名,包含相關文字信息和簽名圖片等;不可見數字簽名,即添加簽名時不在文檔中指定簽名位置,在文檔正文中不顯示相關數字簽名信息。

這里簽名是通過PdfOrdinarySignatureMaker類提供的的接口來實現簽名,在添加可視化簽名時,通過IPdfSignatureAppearance類提供的接口來設置簽名的具體位置,簽名圖片等。

下面是具體實現方法和步驟,供參考。

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

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

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

在彈出的窗口點擊“OK”

等待安裝完成。安裝結果如圖:

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

2.1 添加可視化數字簽名

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

可視化數字簽名效果:

2.2 添加不可見數字簽名

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

不可見數字簽名效果:

到此這篇關于C#和vb.net實現PDF 添加可視化和不可見數字簽名的文章就介紹到這了,更多相關C# PDF 數字簽名內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • unity中點擊某一個按鈕播放某一個動作的操作

    unity中點擊某一個按鈕播放某一個動作的操作

    這篇文章主要介紹了unity中點擊某一個按鈕播放某一個動作的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-04-04
  • C#實現航班預訂系統

    C#實現航班預訂系統

    這篇文章主要為大家詳細介紹了C#實現航班預訂系統,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-05-05
  • 一文帶你搞懂什么是WPF中的依賴屬性

    一文帶你搞懂什么是WPF中的依賴屬性

    依賴屬性是?WPF?的一個核心概念,它為傳統的?.NET?屬性提供了增強功能,支持綁定、樣式、動畫和默認值等功能,下面我們就來看看WPF依賴屬性的具體應用吧
    2024-11-11
  • WPF如何繪制光滑連續(xù)貝塞爾曲線示例代碼

    WPF如何繪制光滑連續(xù)貝塞爾曲線示例代碼

    貝塞爾曲線,又稱貝茲曲線或貝濟埃曲線,一般的矢量圖形軟件通過它來精確畫出曲線,下面這篇文章主要給大家介紹了關于WPF如何繪制光滑連續(xù)貝塞爾曲線的相關資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考下。
    2018-04-04
  • C#進程監(jiān)控方法實例分析

    C#進程監(jiān)控方法實例分析

    這篇文章主要介紹了C#進程監(jiān)控方法,以實例形式較為詳細的分析了C#針對進程的讀取及操作技巧,需要的朋友可以參考下
    2015-07-07
  • C#實現自定義雙擊事件

    C#實現自定義雙擊事件

    這篇文章主要介紹了C#實現自定義雙擊事件,需要的朋友可以參考下
    2014-08-08
  • C#判斷多個文本框是否為空的方法

    C#判斷多個文本框是否為空的方法

    這篇文章主要介紹了C#判斷多個文本框是否為空的方法,可實現對多個文本框的遍歷、判斷及提示等功能,需要的朋友可以參考下
    2015-06-06
  • 使用 C# 動態(tài)編譯代碼和執(zhí)行的代碼

    使用 C# 動態(tài)編譯代碼和執(zhí)行的代碼

    一個控制臺例子, 演示了如何用 C# 動態(tài)的生成代碼, 編譯代碼, 最后執(zhí)行
    2011-05-05
  • C#面向對象設計原則之接口隔離原則

    C#面向對象設計原則之接口隔離原則

    這篇文章介紹了C#面向對象設計原則之接口隔離原則,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-03-03
  • C#實現EPL?II格式打印與打印測試

    C#實現EPL?II格式打印與打印測試

    這篇文章介紹了C#實現EPL?II格式打印與打印測試的方法,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-06-06

最新評論

乐都县| 台北市| 得荣县| 曲靖市| 张掖市| 元朗区| 曲阳县| 石柱| 阜宁县| 鄂伦春自治旗| 永修县| 祁门县| 吉木萨尔县| 光泽县| 宁晋县| 天祝| 措勤县| 沅陵县| 永兴县| 宜黄县| 城市| 云阳县| 厦门市| 得荣县| 磴口县| 江油市| 游戏| 织金县| 黎城县| 南乐县| 双辽市| 格尔木市| 永顺县| 刚察县| 平定县| 建德市| 湛江市| 巴中市| 共和县| 淳化县| 新疆|