EVO HTML to PDF Converter

Select in HTML the Elements for Which to Retrieve Information

EVO HTML to PDF Converter for .NET Documentation

EVO HTML to PDF Converter allows you to retrieve detailed information about any element of the HTML page. You can get the element tag name, CSS class name, ID, HTML code of the element and attributes. You can select the elements for which to retrieve the information by adding the data-mapping-enabled attribute to element directly in HTML page. Additionally you can set a unique ID for an element with data-mapping-id to help you find the element in the collection of retrieved elements.

Code Sample - Select in HTML the Elements for Which to Retrieve Information

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
    {
        // Convert HTML page or string with mapping attributes to a PDF document object 
        // The document can be further modified to highlight the selected elements
        if (convertHtmlRadioButton.Checked)
        {
            string htmlWithMappingAttributes = htmlStringTextBox.Text;
            string baseUrl = baseUrlTextBox.Text;

            // Convert a HTML string with mapping attributes to a PDF document object
            pdfDocument = htmlToPdfConverter.ConvertHtmlToPdfDocumentObject(htmlWithMappingAttributes, baseUrl);
        }
        else
        {
            string url = urlTextBox.Text;

            // Convert a HTML page with mapping attributes to a PDF document object
            pdfDocument = htmlToPdfConverter.ConvertUrlToPdfDocumentObject(url);
        }

        // Display detailed information about the selected elements
        StringBuilder htmlElementInfoBuilder = new StringBuilder();
        foreach (HtmlElementMapping htmlElementInfo in htmlToPdfConverter.HtmlElementsMappingOptions.HtmlElementsMappingResult)
        {
            // Get other information about HTML element
            string htmlElementTagName = htmlElementInfo.HtmlElementTagName;
            string htmlElementID = htmlElementInfo.HtmlElementId;
            string htmlElementMappingID = htmlElementInfo.MappingId;
            string htmlElementCssClasssName = htmlElementInfo.HtmlElementCssClassName;
            string htmlElementHtmlCode = htmlElementInfo.HtmlElementOuterHtml;
            string htmlElementInnerHtml = htmlElementInfo.HtmlElementInnerHtml;
            string htmlElementText = htmlElementInfo.HtmlElementText;
            System.Collections.Specialized.NameValueCollection htmlElementAttributes = htmlElementInfo.HtmlElementAttributes;
            HtmlElementPdfRectangle[] htmlElementRectanglesInPdf = htmlElementInfo.PdfRectangles;

            htmlElementInfoBuilder.AppendFormat("<br/>---------------------------------------- HTML Element Info ----------------------------------------<br/><br/>");
            htmlElementInfoBuilder.AppendFormat("<b>Tag Name:</b> {0}<br/>", htmlElementTagName);
            htmlElementInfoBuilder.AppendFormat("<b>Element ID:</b> {0}<br/>", htmlElementID);
            htmlElementInfoBuilder.AppendFormat("<b>Mapping ID:</b> {0}<br/>", htmlElementMappingID);
            htmlElementInfoBuilder.AppendFormat("<b>Text:</b> {0}<br/>", htmlElementText);

            htmlElementInfoBuilder.AppendFormat("<b>Attributes:</b><br/>");
            for (int i = 0; i < htmlElementAttributes.Count; i++)
                htmlElementInfoBuilder.AppendFormat("&nbsp;&nbsp;&nbsp;{0} = \"{1}\"<br/>", htmlElementAttributes.GetKey(i), htmlElementAttributes.Get(i));


            htmlElementInfoBuilder.AppendFormat("<b>Location in PDF:</b><br/>");
            for (int i = 0; i < htmlElementRectanglesInPdf.Length; i++)
            {
                PdfPage pdfPage = htmlElementRectanglesInPdf[i].PdfPage;
                int pdfPageIndex = htmlElementRectanglesInPdf[i].PageIndex;
                RectangleF rectangleInPdfPage = htmlElementRectanglesInPdf[i].Rectangle;

                htmlElementInfoBuilder.AppendFormat("&nbsp;&nbsp;&nbsp;PDF Page Index: {0}<br>", pdfPageIndex);
                htmlElementInfoBuilder.AppendFormat("&nbsp;&nbsp;&nbsp;Rectangle: X = {0:N2} pt , Y = {1:N2} pt , W = {2:N2} pt , H = {3:N2} pt<br/>",
                        rectangleInPdfPage.X, rectangleInPdfPage.Y, rectangleInPdfPage.Width, rectangleInPdfPage.Height);
            }

            htmlElementInfoBuilder.AppendFormat("<br/>");
        }

        PdfPage lastPdfPage = htmlToPdfConverter.ConversionSummary.LastPdfPage;
        RectangleF lastPageRectangle = htmlToPdfConverter.ConversionSummary.LastPageRectangle;

        HtmlToPdfElement htmlElementInfoHtml = new HtmlToPdfElement(0, lastPageRectangle.Bottom + 1, htmlElementInfoBuilder.ToString(), null);
        lastPdfPage.AddElement(htmlElementInfoHtml);

        // 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=Select_in_HTML_Elements_to_Retrieve.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 Code with Mapping Attributes

XML
<!DOCTYPE html>
<html>
<head>
    <title>Select in HTML the Elements for Which to Retrieve Information</title>
</head>
<body style="font-family: 'Times New Roman'; font-size: 14px">
    <span style="font-size: 24px; font-weight: bold; color: navy">Select the HTML Elements Using 'Data-Mapping-Enabled' Attribute</span><br />
    <br />
    <span style="font-size: 14px; color: black">Detailed information about the following elements will be retrieved and displayed right in the generated PDF:
    </span>
    <br />
    <br />
    <!-- HTML elements for which to retrieve detailed information -->
    <img data-mapping-enabled="true" data-mapping-id="logo_image" alt="Logo Image" style="width: 350px" src="img/logo.jpg" id="imageHtmlID" />
    <br />
    <br />
    <a data-mapping-enabled="true" data-mapping-id="link_to_website" style="font-size: 18px; font-weight: bold; color: navy" href="http://www.evopdf.com" id="linkHtmlID">Visit EVO HTML to PDF Converter Website</a>
</body>
</html>