Sample code · C#
using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc.RazorPages; using Microsoft.AspNetCore.Mvc.Rendering; using SelectPdf.Universal; namespace SelectPdf.Samples.Pages { public class WebElementsLocationModel : PageModel { public void OnGet() { DdlRenderingEngine = "Chromium"; } [BindProperty] public string TxtUrl { get; set; } [BindProperty] public string DdlRenderingEngine { get; set; } = "Chromium"; public List<SelectListItem> RenderingEngines { get; } = new List<SelectListItem> { new SelectListItem { Value = "Chromium", Text = "Chromium" }, }; [BindProperty] public string TxtElements { get; set; } public IActionResult OnPost() { RenderingEngine renderingEngine = SampleForm.ParseEnum(DdlRenderingEngine, RenderingEngine.Chromium); // instantiate a html to pdf converter object HtmlToPdf converter = new HtmlToPdf(); converter.Options.NavigationTimeout = Startup.NavigationTimeout; // set the css selectors for the web elements // whose positions will be retrieved converter.Options.RenderingEngine = renderingEngine; converter.Options.WebElementsMappingOptions.CssSelectors = TxtElements.Split(new char[] { ',' }); // create a new pdf document converting an url PdfDocument doc = converter.ConvertUrl(TxtUrl); // get all web elements and mark/highlight them with a blue 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]; SelectPdf.Universal.Drawing.RectangleF rectangle = webElementRectangle.Rectangle; // highlight the HTML element PdfRectangleElement blueRectangle = new PdfRectangleElement( rectangle.X, rectangle.Y, rectangle.Width, rectangle.Height); blueRectangle.ForeColor = new PdfColor(0, 0, 255); page.Add(blueRectangle); } } // save pdf document byte[] pdf = doc.Save(); // close pdf document doc.Close(); // return resulted pdf document FileResult fileResult = new FileContentResult(pdf, "application/pdf"); fileResult.FileDownloadName = "Document.pdf"; return fileResult; } } }