SelectPdf for .NET - Get Web Elements Location in PDF - C# / ASP.NET Sample

This sample shows how the html to pdf converter can locate certain web elements in the generated PDF using SelectPdf Pdf Library for .NET.

The web elements are defined using CSS selectors. For example, the selector for all the H1 elements is "H1", the selector for all the elements with the CSS class name 'myclass' is "*.myclass" and the selector for the elements with the id 'myid' is "*#myid". Read more about CSS selectors here.

The specified web elements will be marked/highlighted in PDF with a blue rectangle.

Url:


Web elements:



Sample Code C#



using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Drawing;
using SelectPdf;

namespace SelectPdf.Samples
{
    public partial class web_elements_location : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                TxtUrl.Text = "http://selectpdf.com";
            }
        }

        protected void BtnCreatePdf_Click(object sender, EventArgs e)
        {
            // instantiate a html to pdf converter object
            HtmlToPdf converter = new HtmlToPdf();

            // set the css selectors for the web elements
            // whose positions will be retrieved
            converter.Options.WebElementsMappingOptions.CssSelectors =
                TxtElements.Text.Split(new char[] { ',' });

            // create a new pdf document converting an url
            PdfDocument doc = converter.ConvertUrl(TxtUrl.Text);

            // get all web elements and mark/highlight them with a green rectangle
            foreach (WebElement element in 
                converter.Options.WebElementsMappingOptions.Result)
            {
                // each web element has several rendering rectangles 
                // (if it is displayed in more than 1 page)
                foreach (WebElementPdfRectangle webElementRectangle 
                    in element.PdfRectangles)
                {
                    // get the PDF page
                    PdfPage page = doc.Pages[webElementRectangle.PageIndex];
                    RectangleF rectangle = webElementRectangle.Rectangle;

                    // highlight the HTML element
                    PdfRectangleElement blueRectangle = new PdfRectangleElement(
                        rectangle.X, rectangle.Y,
                        rectangle.Width, rectangle.Height);
                    blueRectangle.ForeColor = Color.Blue;

                    page.Add(blueRectangle);
                }
            }

            // save pdf document
            doc.Save(Response, false, "Sample.pdf");

            // close pdf document
            doc.Close();
        }
    }
}