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

C#和vb.net實(shí)現(xiàn)PDF 添加可視化和不可見(jiàn)數(shù)字簽名

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

本文通過(guò)C#程序代碼展示如何給PDF文檔添加可視化數(shù)字簽名和不可見(jiàn)數(shù)字簽名??梢暬瘮?shù)字簽名,即在PDF文檔中的指定頁(yè)面位置添加簽名,包含相關(guān)文字信息和簽名圖片等;不可見(jiàn)數(shù)字簽名,即添加簽名時(shí)不在文檔中指定簽名位置,在文檔正文中不顯示相關(guān)數(shù)字簽名信息。

這里簽名是通過(guò)PdfOrdinarySignatureMaker類(lèi)提供的的接口來(lái)實(shí)現(xiàn)簽名,在添加可視化簽名時(shí),通過(guò)IPdfSignatureAppearance類(lèi)提供的接口來(lái)設(shè)置簽名的具體位置,簽名圖片等。

下面是具體實(shí)現(xiàn)方法和步驟,供參考。

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

鼠標(biāo)右鍵點(diǎn)擊“引用”,“管理Nuget包”

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

在彈出的窗口點(diǎn)擊“OK”

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

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測(cè)試文檔
            PdfDocument pdf = new PdfDocument();
            pdf.LoadFromFile("test.pdf");

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

            //在頁(yè)面中的指定位置添加可視化簽名
            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測(cè)試文檔
            Dim pdf As New PdfDocument()
            pdf.LoadFromFile("test.pdf")

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

            '在頁(yè)面中的指定位置添加可視化簽名
            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ù)字簽名效果:

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

C#

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

namespace InvisibleDigitalSignature
{
    class Program
    {
        static void Main(string[] args)
        {
            //初始化一個(gè)PdfDocument實(shí)例
            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())
            '初始化一個(gè)PdfDocument實(shí)例
            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

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

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

相關(guān)文章

  • unity中點(diǎn)擊某一個(gè)按鈕播放某一個(gè)動(dòng)作的操作

    unity中點(diǎn)擊某一個(gè)按鈕播放某一個(gè)動(dòng)作的操作

    這篇文章主要介紹了unity中點(diǎn)擊某一個(gè)按鈕播放某一個(gè)動(dòng)作的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2021-04-04
  • C#實(shí)現(xiàn)航班預(yù)訂系統(tǒng)

    C#實(shí)現(xiàn)航班預(yù)訂系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了C#實(shí)現(xiàn)航班預(yù)訂系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-05-05
  • 一文帶你搞懂什么是WPF中的依賴(lài)屬性

    一文帶你搞懂什么是WPF中的依賴(lài)屬性

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

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

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

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

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

    C#實(shí)現(xiàn)自定義雙擊事件

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

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

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

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

    一個(gè)控制臺(tái)例子, 演示了如何用 C# 動(dòng)態(tài)的生成代碼, 編譯代碼, 最后執(zhí)行
    2011-05-05
  • C#面向?qū)ο笤O(shè)計(jì)原則之接口隔離原則

    C#面向?qū)ο笤O(shè)計(jì)原則之接口隔離原則

    這篇文章介紹了C#面向?qū)ο笤O(shè)計(jì)原則之接口隔離原則,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-03-03
  • C#實(shí)現(xiàn)EPL?II格式打印與打印測(cè)試

    C#實(shí)現(xiàn)EPL?II格式打印與打印測(cè)試

    這篇文章介紹了C#實(shí)現(xiàn)EPL?II格式打印與打印測(cè)試的方法,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-06-06

最新評(píng)論

昌邑市| 武乡县| 富裕县| 镇宁| 临高县| 萨嘎县| 肃北| 康乐县| 富民县| 花莲县| 阜新市| 宁强县| 航空| 辽宁省| 万州区| 宁阳县| 乌恰县| 昌都县| 文化| 双辽市| 连云港市| 万载县| 晋江市| 搜索| 莱芜市| 富民县| 定陶县| 资阳市| 木兰县| 宽城| 乐都县| 云阳县| 新沂市| 涡阳县| 平泉县| 延寿县| 溧阳市| 九寨沟县| 塔河县| 西宁市| 广东省|