EVO HTML to PDF Converter

Add Text Notes to Generated PDF Document

EVO HTML to PDF Converter for .NET Documentation

EVO HTML to PDF Converter allows you create text notes marked by appropriate icons in the generated PDF document. The text notes are created by adding EvoPdfTextNoteElement objects to a PDF document.

Code Sample - Add Text Notes to Generated PDF Document

protected void convertToPdfButton_Click(object sender, EventArgs e)
{
    // Create a HTML to PDF converter object with default settings
    HtmlToPdfConverter htmlToPdfConverter = new HtmlToPdfConverter();

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

    // Set an adddional delay in seconds to wait for JavaScript or AJAX calls after page load completed
    // Set this property to 0 if you don't need to wait for such asynchcronous operations to finish
    htmlToPdfConverter.ConversionDelay = 2;

    Document pdfDocument = null;
    try
    {
        string htmlWithLinksAndAttachMarkers = htmlStringTextBox.Text;
        string baseUrl = baseUrlTextBox.Text;

        // Convert a HTML string with markers for file links and attachments to a PDF document object
        pdfDocument = htmlToPdfConverter.ConvertHtmlToPdfDocumentObject(htmlWithLinksAndAttachMarkers, baseUrl);

        // Make the HTML element with 'text_note' mapping ID a text note
        HtmlElementMapping textNoteMapping = htmlToPdfConverter.HtmlElementsMappingOptions.HtmlElementsMappingResult.GetElementByMappingId("text_note");
        if (textNoteMapping != null)
        {
            PdfPage textNotePage = textNoteMapping.PdfRectangles[0].PdfPage;
            RectangleF textNoteRectangle = textNoteMapping.PdfRectangles[0].Rectangle;

            // Create the text note
            TextNoteElement textNoteElement = new TextNoteElement(textNoteRectangle, "This is an initially closed text note");
            textNoteElement.NoteIcon = TextNoteIcon.Note;
            textNoteElement.Open = false;
            textNotePage.AddElement(textNoteElement);
        }

        // Make the HTML element with 'text_note_opened' mapping ID an initially opened text note
        HtmlElementMapping textNoteOpenedMapping = htmlToPdfConverter.HtmlElementsMappingOptions.HtmlElementsMappingResult.GetElementByMappingId("text_note_opened");
        if (textNoteOpenedMapping != null)
        {
            PdfPage textNoteOpenedPage = textNoteOpenedMapping.PdfRectangles[0].PdfPage;
            RectangleF textNoteOpenedRectangle = textNoteOpenedMapping.PdfRectangles[0].Rectangle;

            // Create the text note
            TextNoteElement textNoteOpenedElement = new TextNoteElement(textNoteOpenedRectangle, "This is an initially opened text note");
            textNoteOpenedElement.NoteIcon = TextNoteIcon.Note;
            textNoteOpenedElement.Open = true;
            textNoteOpenedPage.AddElement(textNoteOpenedElement);
        }

        // Make the HTML element with 'help_note' mapping ID a help note
        HtmlElementMapping helpNoteMapping = htmlToPdfConverter.HtmlElementsMappingOptions.HtmlElementsMappingResult.GetElementByMappingId("help_note");
        if (helpNoteMapping != null)
        {
            PdfPage helpNotePage = helpNoteMapping.PdfRectangles[0].PdfPage;
            RectangleF helpNoteRectangle = helpNoteMapping.PdfRectangles[0].Rectangle;

            // Create the text note
            TextNoteElement helpNoteElement = new TextNoteElement(helpNoteRectangle, "This is an initially closed help note");
            helpNoteElement.NoteIcon = TextNoteIcon.Help;
            helpNoteElement.Open = false;
            helpNotePage.AddElement(helpNoteElement);
        }

        // Make the HTML element with 'help_note_opened' mapping ID an initially opened help note
        HtmlElementMapping helpNoteOpenedMapping = htmlToPdfConverter.HtmlElementsMappingOptions.HtmlElementsMappingResult.GetElementByMappingId("help_note_opened");
        if (helpNoteOpenedMapping != null)
        {
            PdfPage helpNoteOpenedPage = helpNoteOpenedMapping.PdfRectangles[0].PdfPage;
            RectangleF helpNoteOpenedRectangle = helpNoteOpenedMapping.PdfRectangles[0].Rectangle;

            // Create the text note
            TextNoteElement helpNoteOpenedElement = new TextNoteElement(helpNoteOpenedRectangle, "This is an initially opened help note");
            helpNoteOpenedElement.NoteIcon = TextNoteIcon.Help;
            helpNoteOpenedElement.Open = true;
            helpNoteOpenedPage.AddElement(helpNoteOpenedElement);
        }

        // Make the HTML element with 'comment_note' mapping ID a comment note
        HtmlElementMapping commentNoteMapping = htmlToPdfConverter.HtmlElementsMappingOptions.HtmlElementsMappingResult.GetElementByMappingId("comment_note");
        if (commentNoteMapping != null)
        {
            PdfPage commentNotePage = commentNoteMapping.PdfRectangles[0].PdfPage;
            RectangleF commentNoteRectangle = commentNoteMapping.PdfRectangles[0].Rectangle;

            // Create the text note
            TextNoteElement commentNoteElement = new TextNoteElement(commentNoteRectangle, "This is an initially closed comment note");
            commentNoteElement.NoteIcon = TextNoteIcon.Comment;
            commentNoteElement.Open = false;
            commentNotePage.AddElement(commentNoteElement);
        }

        // Make the HTML element with 'comment_note_opened' mapping ID an initially opened comment note
        HtmlElementMapping commentNoteOpenedMapping = htmlToPdfConverter.HtmlElementsMappingOptions.HtmlElementsMappingResult.GetElementByMappingId("comment_note_opened");
        if (commentNoteOpenedMapping != null)
        {
            PdfPage commentNoteOpenedPage = commentNoteOpenedMapping.PdfRectangles[0].PdfPage;
            RectangleF commentNoteOpenedRectangle = commentNoteOpenedMapping.PdfRectangles[0].Rectangle;

            // Create the text note
            TextNoteElement commentNoteOpenedElement = new TextNoteElement(commentNoteOpenedRectangle, "This is an initially opened comment note");
            commentNoteOpenedElement.NoteIcon = TextNoteIcon.Comment;
            commentNoteOpenedElement.Open = true;
            commentNoteOpenedPage.AddElement(commentNoteOpenedElement);
        }

        // Make the HTML element with 'paragraph_note' mapping ID a paragraph note
        HtmlElementMapping paragraphNoteMapping = htmlToPdfConverter.HtmlElementsMappingOptions.HtmlElementsMappingResult.GetElementByMappingId("paragraph_note");
        if (paragraphNoteMapping != null)
        {
            PdfPage paragraphNotePage = paragraphNoteMapping.PdfRectangles[0].PdfPage;
            RectangleF paragraphNoteRectangle = paragraphNoteMapping.PdfRectangles[0].Rectangle;

            // Create the text note
            TextNoteElement paragraphNoteElement = new TextNoteElement(paragraphNoteRectangle, "This is an initially closed paragraph note");
            paragraphNoteElement.NoteIcon = TextNoteIcon.Paragraph;
            paragraphNoteElement.Open = false;
            paragraphNotePage.AddElement(paragraphNoteElement);
        }

        // Make the HTML element with 'new_paragraph_note' mapping ID a new paragraph note
        HtmlElementMapping newParagraphNoteMapping = htmlToPdfConverter.HtmlElementsMappingOptions.HtmlElementsMappingResult.GetElementByMappingId("new_paragraph_note");
        if (newParagraphNoteMapping != null)
        {
            PdfPage newParagraphNotePage = newParagraphNoteMapping.PdfRectangles[0].PdfPage;
            RectangleF newParagraphNoteRectangle = newParagraphNoteMapping.PdfRectangles[0].Rectangle;

            // Create the text note
            TextNoteElement newParagraphNoteElement = new TextNoteElement(newParagraphNoteRectangle, "This is an initially closed new paragraph note");
            newParagraphNoteElement.NoteIcon = TextNoteIcon.NewParagraph;
            newParagraphNoteElement.Open = false;
            newParagraphNotePage.AddElement(newParagraphNoteElement);
        }

        // Make the HTML element with 'key_note' mapping ID a key note
        HtmlElementMapping keyNoteMapping = htmlToPdfConverter.HtmlElementsMappingOptions.HtmlElementsMappingResult.GetElementByMappingId("key_note");
        if (keyNoteMapping != null)
        {
            PdfPage keyNotePage = keyNoteMapping.PdfRectangles[0].PdfPage;
            RectangleF keyNoteRectangle = keyNoteMapping.PdfRectangles[0].Rectangle;

            // Create the text note
            TextNoteElement keyNoteElement = new TextNoteElement(keyNoteRectangle, "This is an initially closed key note");
            keyNoteElement.NoteIcon = TextNoteIcon.Key;
            keyNoteElement.Open = false;
            keyNotePage.AddElement(keyNoteElement);
        }

        // 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=Text_Notes.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();
    }
    finally
    {
        // Close the PDF document
        if (pdfDocument != null)
            pdfDocument.Close();
    }
}
HTML String with Markers for Text Notes

XML
<!DOCTYPE html>
<html>
<head>
    <title>Add Text Notes to PDF</title>
</head>
<body style="font-family: 'Times New Roman'; font-size: 14px">
    <span style="font-size: 24px; font-weight: bold">Text Notes</span><br />
    <br />
    <span style="">Click the next icon to open the the text note:</span>
    <span data-mapping-enabled="true" data-mapping-id="text_note">&nbsp;&nbsp;</span><br />
    <br />
    <span style="">This is an already opened text note:</span>
    <span data-mapping-enabled="true" data-mapping-id="text_note_opened">&nbsp;&nbsp;</span><br />
    <br />
    <span style="">Click the next icon to open the the help note:</span>
    <span data-mapping-enabled="true" data-mapping-id="help_note">&nbsp;&nbsp;</span><br />
    <br />
    <span style="">This is an already opened help note:</span>
    <span data-mapping-enabled="true" data-mapping-id="help_note_opened">&nbsp;&nbsp;</span><br />
    <br />
    <span style="">Click the next icon to open the comment:</span>
    <span data-mapping-enabled="true" data-mapping-id="comment_note">&nbsp;&nbsp;</span><br />
    <br />
    <span style="">This is an already opened comment:</span>
    <span data-mapping-enabled="true" data-mapping-id="comment_note_opened">&nbsp;&nbsp;</span><br />
    <br />
    <span style="">Click the next icon to open the paragraph note:</span>
    <span data-mapping-enabled="true" data-mapping-id="paragraph_note">&nbsp;&nbsp;</span><br />
    <br />
    <span style="">Click the next icon to open the new paragraph note:</span>
    <span data-mapping-enabled="true" data-mapping-id="new_paragraph_note">&nbsp;&nbsp;</span><br />
    <br />
    <span style="">Click the next icon to open the key note:</span>
    <span data-mapping-enabled="true" data-mapping-id="key_note">&nbsp;&nbsp;</span><br />
</body>
</html>