VintaSoft Imaging .NET SDK 15.2: Документация для .NET разработчика
В этом разделе
PDF: Как добавить цифровую подпись в PDF-документ?
В этом разделе
PDF-документ можно подписать с помощью цифрового сертификата, который можно получить в доверенном центре сертификации (CA), таком как DigiCert или GlobalSign. Также можно создать самоподписанный цифровой сертификат для внутренних целей или в целях тестирования.

VintaSoft Imaging .NET SDK может подписывать PDF-документы с помощью цифрового сертификата. SDK использует технологию "байтового диапазона" для подписи PDF-документов, т.е. SDK вычисляет контрольную сумму для двоичных данных всего документа. Рассчитанная контрольная сумма и цифровая подпись сохраняются в поле подписи интерактивной формы PDF-документа.

Если PDF-документ должен быть подписан с использованием цифровой подписи, необходимо выполнить следующие действия:
Если PDF-документ должен содержать поле для подписи для дальнейшего подписания документа другим лицом, необходимо выполнить следующие действия:
Вот C#/VB.NET код, демонстрирующий, как добавить цифровую подпись в PDF-документ:
/// <summary>
/// Signs a PDF or PDF/A document using X509 Certificate.
/// </summary>
/// <param name="inputFilename">The filename of input PDF document.</param>
/// <param name="outputFilename">The filename of output PDF document.</param>
/// <param name="certificate">The X509 certificate.</param>
/// <param name="conformance">PDF/A conformance.</param>
public static void SignDocument(
    string inputFilename,
    string outputFilename,
    X509Certificate2 certificate,
    PdfDocumentConformance conformance)
{
    // create digital signature helper
    PdfPageDigitalSignatureHelper digitalSignatureHelper = new PdfPageDigitalSignatureHelper(certificate, new RectangleF(10, 10, 250, 75));

    // set signing reason
    digitalSignatureHelper.SigningReason = "Test signing";

    // set text
    digitalSignatureHelper.SignatureText = string.Format("Digitally signed by\n{0}", digitalSignatureHelper.SignerName);

    PdfAConverter pdfAConverter = null;
    // if specified PDF/A conformance
    if (conformance != PdfDocumentConformance.Undefined)
    {
        // create PDF/A converter
        pdfAConverter = (PdfAConverter)PdfDocumentConverter.Create(conformance);
        //pdfAConverter.DefaultCmykIccProfileFilename = "DefaultCMYK.icc";
        //pdfAConverter.DefaultRgbIccProfileFilename = "DefaultRGB.icc";
    }

    // sign PDF document and save PDF document to the output file
    digitalSignatureHelper.SignDocument(inputFilename, outputFilename, 0, pdfAConverter);
}
''' <summary>
''' Signs a PDF or PDF/A document using X509 Certificate.
''' </summary>
''' <param name="inputFilename">The filename of input PDF document.</param>
''' <param name="outputFilename">The filename of output PDF document.</param>
''' <param name="certificate">The X509 certificate.</param>
''' <param name="conformance">PDF/A conformance.</param>
Public Shared Sub SignDocument(inputFilename As String, outputFilename As String, _
    certificate As X509Certificate2, conformance As PdfDocumentConformance)

    ' create digital signature helper
    Dim digitalSignatureHelper As New PdfPageDigitalSignatureHelper(certificate, New RectangleF(10, 10, 250, 75))

    ' set signing reason
    digitalSignatureHelper.SigningReason = "Test signing"

    ' set text
    digitalSignatureHelper.SignatureText = String.Format("Digitally signed by" & vbLf & "{0}", digitalSignatureHelper.SignerName)

    Dim pdfAConverter As PdfAConverter = Nothing
    ' if specified PDF/A conformance
    If conformance <> PdfDocumentConformance.Undefined Then
        ' create PDF/A converter
            'pdfAConverter.DefaultCmykIccProfileFilename = "DefaultCMYK.icc";
            'pdfAConverter.DefaultRgbIccProfileFilename = "DefaultRGB.icc";
        pdfAConverter = DirectCast(PdfDocumentConverter.Create(conformance), PdfAConverter)
    End If

    ' sign PDF document and save PDF document to the output file
    digitalSignatureHelper.SignDocument(inputFilename, outputFilename, 0, pdfAConverter)
End Sub


Вот C#/VB.NET код, демонстрирующий, как добавить цифровую подпись с меткой времени в PDF-документ:
using System.Drawing;
using System.Security.Cryptography.X509Certificates;
using Vintasoft.Imaging.Pdf;

/// <summary>
/// Adds digital signature with timestamp to a PDF page.
/// </summary>
public class PdfPageDigitalSignatureHelper_Timestamp
{
    public static void Run()
    {
        // get the X509 certificate from .pfx-file
        using (X509Certificate2 certificate = new X509Certificate2("TestCertificate.pfx", "test"))
        {
            // create a helper that alows to add digital signature to a PDF document
            PdfPageDigitalSignatureHelper digitalSignatureHelper =
                new PdfPageDigitalSignatureHelper(certificate, new RectangleF(20, 20, 250, 100));

            // set the reason for signing
            digitalSignatureHelper.SigningReason = "Approve document";

            // set the name of image file that defines the signature appearance
            digitalSignatureHelper.SignatureImageFilename = "SignatureImage.svg";

            // set the URL to the timestamp server
            digitalSignatureHelper.TimestampServerUrl = "http://timestamp.comodoca.com/";

            // add digital signature to the first PDF page, sign PDF document and save PDF document to the output file
            digitalSignatureHelper.SignDocument("TestDocumentToSign.pdf", "TestDocumentToSign-signed.pdf", 0);
        }
    }
}

Imports System.Drawing
Imports System.Security.Cryptography.X509Certificates
Imports Vintasoft.Imaging.Pdf

''' <summary>
''' Adds digital signature with timestamp to a PDF page.
''' </summary>
Public Class PdfPageDigitalSignatureHelper_Timestamp
    Public Shared Sub Run()
        ' get the X509 certificate from .pfx-file
        Using certificate As New X509Certificate2("TestCertificate.pfx", "test")
            ' create a helper that alows to add digital signature to a PDF document
            Dim digitalSignatureHelper As New PdfPageDigitalSignatureHelper(certificate, New RectangleF(20, 20, 250, 100))

            ' set the reason for signing
            digitalSignatureHelper.SigningReason = "Approve document"

            ' set the name of image file that defines the signature appearance
            digitalSignatureHelper.SignatureImageFilename = "SignatureImage.svg"

            ' set the URL to the timestamp server
            digitalSignatureHelper.TimestampServerUrl = "http://timestamp.comodoca.com/"

            ' add digital signature to the first PDF page, sign PDF document and save PDF document to the output file
            digitalSignatureHelper.SignDocument("TestDocumentToSign.pdf", "TestDocumentToSign-signed.pdf", 0)
        End Using
    End Sub
End Class



Пожалуйста, ознакомьтесь с тем, как проверить цифровые подписи в PDF-документе здесь .
Пожалуйста, прочтите, как удалить цифровую подпись из PDF-документа здесь .