Selects the text that intersect with a specified area.
public void SelectText(
LeadRect area,
DocumentViewerSelectTextMode mode
)
area
location and size of the area to check. This is in pixels and must be in control (client) coordinates, such as directly
from a mouse event.
mode
Mode to use for the selection.
This method selects text from all the pages that currently intersects with area. When this method returns, the new selected text (if any) can be obtained by GetSelectedTextItems (or GetSelectedText as a simple string).
ClearSelection is called if area is an empty rectangle or if none of the text intersects with the rectangle.
This method fires Operation with DocumentViewerOperation.TextSelectionChanged and DocumentViewerOperation.PageTextSelectionChanged if the result of the operation changes the state of text selection.
If RenderSelection is true, then the selected text will be highlighted on the view ImageViewer object automatically.
If the text of any of the pages that is checked is not obtained yet, then the value of AutoGetText will be used to determine whether DocumentPage.GetText is called automatically. Therefore, this method might experience a delay while the text is parsed from the document in this mode.
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;
// First check if we have text for this page
var pageNumber = _documentViewer.CurrentPageNumber;
if (!text.HasDocumentPageText(pageNumber))
{
// Get the text
text.GetDocumentPageText(pageNumber);
// Show it
var value = text.ExportText(pageNumber);
Console.WriteLine(value);
}
// Get the current document
var document = _documentViewer.Document;
// Get the page and the current view item
var page = document.Pages[pageNumber - 1];
// Create a rectangle that is the first half of the page
var bounds = LeadRectD.Create(0, 0, page.Size.Width, page.Size.Height / 2);
// SelectText requires the rectangle to be in control pixel coordinates, so convert. First to pixels ...
bounds = document.RectToPixels(bounds).ToLeadRectD();
// And then using the image viewer in the view to control. The item is the one at page number - 1
var imageViewer = _documentViewer.View.ImageViewer;
bounds = imageViewer.ConvertRect(imageViewer.Items[pageNumber - 1], ImageViewerCoordinateType.Image, ImageViewerCoordinateType.Control, bounds);
// Select it, all lines
text.SelectText(bounds.ToLeadRect(), DocumentViewerSelectTextMode.Line);
// Now, check if we have any text selected
if (text.HasSelectedText(pageNumber))
{
// yes, show it
var value = text.GetSelectedText(pageNumber);
Console.WriteLine(value);
}