FindText.cs
C# VB
//// This code is part of Document Solutions for PDF .NET demos.// Copyright (c) MESCIUS inc. All rights reserved.//using System.IO;using System.Drawing;using GrapeCity.Documents.Common;using GrapeCity.Documents.Pdf;
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; } }}