Click or drag to resize
Pdf Library for .NET

Get Web Elements Location in PDF

SelectPdf Html to Pdf Converter for .NET can be used to locate certain web elements in the generated PDF document.

The web elements for which the locations are retrieved are defined using the WebElementsMappingOptions property of the HtmlToPdfOptions object. This is an instance of the WebElementsMappingOptions class that has 2 properties: CssSelectors that can be used to specify the web elements and Result, which is set automatically after conversion and returns the mapping into the generated pdf document of the html elements specified by the CssSelectors property.

In other words, 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.

Sample Code

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 specified web elements will be marked/highlighted in PDF with a blue rectangle.

// 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();
See Also