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.
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();