DocumentViewerFindText Class (original) (raw)

Summary

Contains options for a find text operation.

Syntax

public class DocumentViewerFindText 

public: ref class DocumentViewerFindText

Example

using Leadtools; using Leadtools.Controls; using Leadtools.Document; using Leadtools.Document.Viewer; using Leadtools.Codecs; using Leadtools.Caching; using Leadtools.Annotations.Engine; using Leadtools.Ocr; var text = _documentViewer.Text; // Make sure we get the page text if necessary text.AutoGetText = true; // We will find all matches of "LEAD", ignoring the case var options = new DocumentViewerFindText(); // The text options.Text = "LEAD"; // Ignore case options.MatchCase = false; // Any word that contains the phrase options.WholeWordsOnly = false; // Find all results in the bounds, not just the first options.FindAll = true; // Highlight the results in the View options.RenderResults = true; // Optionally change the highlight color //DocumentViewerText.FoundTextBrush = new SolidBrush(Color.FromArgb(52, Color.Brown)); // Set the bounds bool isFindingNext = true; // We set the bounds as the whole document, but below we can specify to start wherever text is selected // or at the current page var topOfFirstPage = DocumentViewerTextPosition.CreateBeginOfPage(1); var bottomOfLastPage = DocumentViewerTextPosition.CreateEndOfPage(_documentViewer.PageCount); if (isFindingNext) { // Make the beginning bound "higher up" the page so we search "down" the page. options.BeginPosition = topOfFirstPage; options.EndPosition = bottomOfLastPage; } else { // Make the beginning bound "lower down" the page so we search "up" the page. options.BeginPosition = bottomOfLastPage; options.EndPosition = topOfFirstPage; } // Select the first result in the View (automatically scrolls View also) options.SelectFirstResult = true; if (text.HasAnySelectedText) { // Setting this value to AfterSelection allows us to search forward from the selection, so multiple // uses of this same options object will cycle us through all the matches! // (If no selected text actually exists, search will default to beginPosition.) options.Start = DocumentViewerFindTextStart.AfterSelection; } else { // We could start at the begin position, but it makes more UI sense to start from the user's current page. // Search will loop back around to the begin position - this just changes the starting point and order of results. options.Start = DocumentViewerFindTextStart.ManualPosition; if (isFindingNext) options.ManualStartPosition = DocumentViewerTextPosition.CreateBeginOfPage(_documentViewer.CurrentPageNumber); else options.ManualStartPosition = DocumentViewerTextPosition.CreateEndOfPage(_documentViewer.CurrentPageNumber); } // If we were just looking for the first match, we could use "Loop" to loop around // if we found nothing between the start position and the end bound. //options.Loop = true; // You will likely want to clear the previous highlighted results // on the screen so only our new results will show. text.ClearRenderedFoundText(); // Search var results = text.Find(options); int resultsCount = results != null ? results.Count : 0; if (resultsCount > 0) Console.WriteLine(string.Format("Found {0} results", resultsCount)); else Console.WriteLine("No matches found.");