FindText.cs
 // // This code is part of Document Solutions for PDF demos. // Copyright (c) MESCIUS inc. All rights reserved. // using System; using System.IO; using System.Drawing; using GrapeCity.Documents.Common; using GrapeCity.Documents.Pdf; using GrapeCity.Documents.Text; namespace DsPdfWeb.Demos { // This sample loads the PDF file created by the BalancedColumns sample, // finds all occurrences of the words 'lorem' and 'ipsum' in the loaded document, // and highlights these two words using different colors. public class FindText { public int CreatePDF(Stream stream) { // The original file stream must be kept open while working with the loaded PDF, see LoadPDF for details: using var fs = File.OpenRead(Path.Combine("Resources", "PDFs", "BalancedColumns.pdf")); var doc = new GcPdfDocument(); doc.Load(fs); // Find all 'lorem', using case-insensitive word search: var findsLorem = doc.FindText( new FindTextParams("lorem", true, false), OutputRange.All); // Ditto for 'ipsum': var findsIpsum = doc.FindText( new FindTextParams("ipsum", true, false), OutputRange.All); // Highlight all 'lorem' using semi-transparent orange red: foreach (var find in findsLorem) foreach (var ql in find.Bounds) doc.Pages[find.PageIndex].Graphics.FillPolygon(ql, Color.FromArgb(100, Color.OrangeRed)); // Put a violet red border around all 'ipsum': foreach (var find in findsIpsum) foreach (var ql in find.Bounds) doc.Pages[find.PageIndex].Graphics.DrawPolygon(ql, Color.MediumVioletRed); // Done: doc.Save(stream); return doc.Pages.Count; } } }