vb是否有分繁体字版本_C# / VB如何获取PDF文档的数字签名信息

文档中的数字签名具有不可否认性,可有效防伪防篡改。对文档中已有的数字签名信息,可通过一定方法获取,下面通过程序代码介绍如何来实现。程序中,使用了Spire.PDF.dll,版本:6.11.6,可自行在官网下载包:

Spire.PDF for .NET | 下载​www.e-iceblue.cn
73aa947407f42430be064ad4dca6b857.png

或者通过nuget下载:

Spire.PDF 6.11.6​www.nuget.org
eb0c41869a5783028be21e0f6864a59f.png

下载后,在程序中添加引用dll文件。如下添加引用效果:

7bdeec430bfb8db6c537314b77d4c8a5.png
dll文件添加引用效果

完成dll文件添加引用后,可参考如下代码来操作:

[C#]

using Spire.Pdf;
using Spire.Pdf.Graphics;
using Spire.Pdf.Security;
using Spire.Pdf.Widget;
using System;
using System.Drawing;

namespace GetSignature
{
    class Program
    {
        static void Main(string[] args)
        {

            //创建PdfDocument实例
            PdfDocument pdf = new PdfDocument();
            //加载含有签名的PDF文件
            pdf.LoadFromFile("数字签名.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];
                    //获取签名
                    PdfSignature signature = signatureFieldWidget.Signature;
                    String location = signature.LocationInfo;
                    String reason = signature.Reason;
                    String data = signature.Date.ToString();

                    Console.WriteLine("签名位置信息:" + location + "n" +
                            "签名原因:" + reason + "n" +
                            "签名日期:" + data + "n" +
                            "文档中的签名坐标:X = " + signatureFieldWidget.Location.X + "  Y = " + signatureFieldWidget.Location.Y);
                    Console.ReadLine();
                }
            }

        }
    }
}

[http://VB.NET]

Imports Spire.Pdf
Imports Spire.Pdf.Graphics
Imports Spire.Pdf.Security
Imports Spire.Pdf.Widget
Imports System.Drawing

Namespace GetSignature
	Class Program
		Private Shared Sub Main(args As String())

			'创建PdfDocument实例
			Dim pdf As New PdfDocument()
			'加载含有签名的PDF文件
			pdf.LoadFromFile("数字签名.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)
					'获取签名
					Dim signature As PdfSignature = signatureFieldWidget.Signature
					Dim location As [String] = signature.LocationInfo
					Dim reason As [String] = signature.Reason
					Dim data As [String] = signature.[Date].ToString()

					Console.WriteLine("签名位置信息:" + location + vbLf + "签名原因:" + reason + vbLf + "签名日期:" + data + vbLf + "文档中的签名坐标:X = " + signatureFieldWidget.Location.X + "  Y = " + signatureFieldWidget.Location.Y)
					Console.ReadLine()
				End If
			Next

		End Sub
	End Class
End Namespace

数字签名信息获取结果:

81ee42c8b794497421775c24bc0922a7.png

喜欢本文可收藏并关注本专栏哦,后续将持续更新C#操作PDF文档的干货文章。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值