Indicates whether to match the whole word when searching for text.
public bool WholeWordsOnly { get; set; }
true to match the whole word when searching for text; otherwise, false. Default value is false.
When WholeWordsOnly is false, then the Text "ell" is a match if the page contains "Hello". It is not a match when WholeWordsOnly is true.
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.");