EVO HTML to PDF Converter

Add A Digital Signature to Generated PDF Document

EVO PDF Client for .NET Documentation

EVO HTML to PDF Converter allows you to add digital signatures to the generated PDF document. In order to add digital signatures you need a certificate with private and public keys. These certificates are usually stored in a .pfx or a .p12 file in PKCS#12 format and they can be password protected. A digital signature is represented by a EvoPdf.HtmlToPdfClientDigitalSignatureElement object which can be placed in any position in a PDF page. Below is a complete example of adding a digital signature to a PDF document.

Code Sample - Add A Digital Signature to Generated PDF Document

C#
protected void convertToPdfButton_Click(object sender, EventArgs e)
        {
            // Get the server IP and port
            String serverIP = textBoxServerIP.Text;
            uint serverPort = uint.Parse(textBoxServerPort.Text);

            // Create a PDF document
            Document pdfDocument = null;
            if (radioButtonUseTcpService.Checked)
                pdfDocument = new Document(serverIP, serverPort);
            else
                pdfDocument = new Document(true, textBoxWebServiceUrl.Text);

            // Set optional service password
            if (textBoxServicePassword.Text.Length > 0)
                pdfDocument.ServicePassword = textBoxServicePassword.Text;

            // Set license key received after purchase to use the converter in licensed mode
            // Leave it not set to use the converter in demo mode
            pdfDocument.LicenseKey = "4W9+bn19bn5ue2B+bn1/YH98YHd3d3c=";

            // Add a page to PDF document
            PdfPage pdfPage = pdfDocument.AddPage();

            string htmlWithDigitalSignatureMarker = htmlStringTextBox.Text;
            string baseUrl = baseUrlTextBox.Text;

            // Add a HTML string with a marker for digital signature to PDF document
            HtmlToPdfElement htmlToPdfElement = new HtmlToPdfElement(htmlWithDigitalSignatureMarker, baseUrl);
            pdfPage.AddElement(htmlToPdfElement);

            string certificateFilePath = Server.MapPath(@"~/DemoAppFiles/Input/Certificates/evopdf.pfx");

            // Create the digital signature
            DigitalSignatureElement signature = new DigitalSignatureElement(certificateFilePath, "evopdf", 0);
            signature.Reason = "Protect the document from unwanted changes";
            signature.ContactInfo = "The contact email is support@evopdf.com";
            signature.Location = "Development server";
            pdfDocument.AddElement(signature);

            // Save the PDF document in a memory buffer
            byte[] outPdfBuffer = pdfDocument.Save();

            // Send the PDF as response to browser

            // Set response content type
            Response.AddHeader("Content-Type", "application/pdf");

            // Instruct the browser to open the PDF file as an attachment or inline
            Response.AddHeader("Content-Disposition", String.Format("attachment; filename=Digital_Signatures.pdf; size={0}", outPdfBuffer.Length.ToString()));

            // Write the PDF document buffer to HTTP response
            Response.BinaryWrite(outPdfBuffer);

            // End the HTTP response and stop the current page processing
            Response.End();
        }
HTML Code with a Region Marked to Become a Digital Signature

XML
<!DOCTYPE html>
<html>
<head>
    <title>Add Digital Signatures in PDF</title>
</head>
<body style="font-family: 'Times New Roman'; font-size: 14px">
    <span style="font-size: 24px; font-weight: bold">Digital Signatures</span><br />
    <br />
    <span>The image and the text below will become a link to digital signature properties:</span>
    <br />
    <br />
    <div data-mapping-enabled="true" data-mapping-id="digital_signature_element" style="width: 320px; padding: 5px 5px 5px 5px; border: 2px solid royalblue">
        <span style="font-size: 16px; font-weight: bold; text-decoration: underline; color: navy">Click to open the digital signature properties</span><br />
        <br />
        <img alt="Logo Image" style="width: 300px" src="img/logo.jpg" />
    </div>
    <br />
    <br />
</body>
</html>