Определение даты цифровой подписи в PDF-файлах на C# и .NET

При работе с PDF-документами с цифровой подписью часто возникает необходимость проверить дату подписания документа. Это может быть важно для юридических целей и ведения документации. Используя библиотеку SautinSoft.Pdf, разработчики могут программно определить дату подписания цифровой подписью в PDF-документе с помощью C# и .NET. Это позволяет достичь нескольких важных целей:

  • Юридическое значение. Дата подписания может иметь решающее значение для юридических документов, контрактов и соглашений. Она подтверждает, когда именно был подписан документ, что может быть необходимо для соблюдения условий.
  • Аудит и отслеживание. В корпоративной среде важно иметь возможность отслеживать подписание документов в целях аудита и внутреннего контроля.
  • Аутентификация. Дата подписания помогает подтвердить подлинность документа и его неизменность с момента подписания.
  • Соблюдение нормативных требований. В некоторых отраслях и юрисдикциях к документам предъявляются строгие требования, в том числе необходимость указывать дату подписания.

Следуйте инструкциям для достижения желаемого результата.

  1. Добавить SautinSoft.PDF из NuGet.
  2. Загрузить PDF-документ.
  3. Найти цифровую подпись и извлечь дату создания.
  4. Показать дату на консоли.

Выходной результат:

Полный код

using System;
using System.IO;
using SautinSoft;
using SautinSoft.Pdf;
using SautinSoft.Pdf.Content;
using SautinSoft.Pdf.Forms;

namespace Sample
{
    class Sample
    {
        /// <summary>
        /// How to determine the signing date of a digital signature on a current pdf using C# and .NET
        /// </summary>
        /// <remarks>
        /// Details: https://sautinsoft.com/products/pdf/help/net/developer-guide/determine-the-signing-date-of-a-digital-signature-on-a-current-pdf-csharp-dotnet.php
        /// </remarks>
        static void Main(string[] args)
        {
            // Before starting this example, please get a free trial key:
            // https://sautinsoft.com/start-for-free/

            // Apply the key here:
            // PdfDocument.SetLicense("...");

            string inpFile = Path.GetFullPath(@"..\..\..\digital signature.pdf");
            
            using (PdfDocument document = PdfDocument.Load(inpFile))
            {
                var field = document.Form.Fields.FirstOrDefault(f => f is PdfSignatureField);
                if (field != null && field is PdfSignatureField signField)
                {
                    Console.WriteLine($"The signature date is {signField.Value.Date}.");
                }
                else
                {
                    Console.WriteLine("The PDF doesn't have a digital signature!");
                }
            }
        }
    }
}

Download

Option Infer On

Imports System
Imports System.IO
Imports SautinSoft
Imports SautinSoft.Pdf
Imports SautinSoft.Pdf.Content
Imports SautinSoft.Pdf.Forms

Namespace Sample
	Friend Class Sample
		''' <summary>
		''' How to determine the signing date of a digital signature on a current pdf using C# and .NET
		''' </summary>
		''' <remarks>
		''' Details: https://sautinsoft.com/products/pdf/help/net/developer-guide/determine-the-signing-date-of-a-digital-signature-on-a-current-pdf-csharp-dotnet.php
		''' </remarks>
		Shared Sub Main(ByVal args() As String)
			' Before starting this example, please get a free trial key:
			' https://sautinsoft.com/start-for-free/

			' Apply the key here:
			' PdfDocument.SetLicense("...");

			Dim inpFile As String = Path.GetFullPath("..\..\..\digital signature.pdf")

			Using document As PdfDocument = PdfDocument.Load(inpFile)
				Dim field = document.Form.Fields.FirstOrDefault(Function(f) TypeOf f Is PdfSignatureField)
				Dim tempVar As Boolean = TypeOf field Is PdfSignatureField
				Dim signField As PdfSignatureField = If(tempVar, CType(field, PdfSignatureField), Nothing)
				If field IsNot Nothing AndAlso tempVar Then
					Console.WriteLine($"The signature date is {signField.Value.Date}.")
				Else
					Console.WriteLine("The PDF doesn't have a digital signature!")
				End If
			End Using
		End Sub
	End Class
End Namespace

Download


Если вам нужен пример кода или у вас есть вопрос: напишите нам по адресу support@sautinsoft.ru или спросите в онлайн-чате (правый нижний угол этой страницы) или используйте форму ниже:



Вопросы и предложения всегда приветствуются!

Мы разрабатываем компоненты .Net с 2002 года. Мы знаем форматы PDF, DOCX, RTF, HTML, XLSX и Images. Если вам нужна помощь в создании, изменении или преобразовании документов в различных форматах, мы можем вам помочь. Мы напишем для вас любой пример кода абсолютно бесплатно.