VintaSoft Imaging .NET SDK 15.1: Documentation for .NET developer
In This Topic
PDF: Add a signature field to the PDF interactive form
In This Topic
Here is C#/VB.NET code that demonstrates how to create a signature field and add it to an interactive form of PDF document, i.e. to sign the document via digital signature for authenticating the user identity and the validity of content:
/// <summary>
/// Adds a digital signature to a PDF or PDF/A document.
/// </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>
''' Adds a digital signature to a PDF or PDF/A document.
''' </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