←Select platform

DocumentViewerText Class

Summary

Manages the text operations in this document viewer.

Syntax
C#
VB
C++
public class DocumentViewerText : IDisposable 
Public Class DocumentViewerText 
public: 
   ref class DocumentViewerText 

Remarks

DocumentViewerText can be accessed by the Text property of DocumentViewer. An instance is always available when the control is created and is never null.

This class manages the text operations of the current LEADDocument set in the document viewer. The text is treated as a read-only option and cannot be changed. The operations that can be performed includes selecting characters, words or lines using the mouse or touch, highlighting the selected text of the pages, performing free text search in the document using "find", "find next" and "find previous" and exporting the text as a simple string or to the clipboard.

The text of a document page is obtained using the DocumentPage.GetText method. This parses any text elements found on a page using SVG or OCR technologies and returns it in a DocumentPageText object that contains the character code, location and size of each text character found in the page.

The DocumentViewerTextItem class contains information of a selected text item on a page. This includes the page number, the bounding rectangle of the selection as well as the range of the characters selected in the corresponding DocumentPageText.

DocumentViewerText keeps track of the selection state internally in a list of DocumentViewerTextItem items. When the text selection changes, this list is updated to reflect the current state. These items are also used to highlight the current text selection on DocumentViewer.View.ImageViewer.

DocumentViewerSelectTextInteractiveMode uses the methods of DocumentViewerText to perform its main action of selecting text interactively using mouse or touch. The draw designers of the AnnTextReviewObject objects such as highlight, underline strikeout and text redaction also uses the methods of this class to perform their actions if annotations support is used.

Obtaining the text can be a time consuming operation especially if OCR is used. Therefore, DocumentViewerText tries to obtain the text only as needed and then stores the DocumentPageText items internally and re-uses them.

The AutoGetText property controls how text is obtained and should be set according to the application need.

DocumentViewerText uses the Operation event to inform the user when text is obtained from the document and if the text selection changes. Refer to Document Viewer Operations for more information.

In addition to the methods of this class, the application can use the commands system to interact with the text. Refer to the Text section in Document Viewer Commands for more information.

Example

Start with the example created in DocumentViewer, remove all the code in the Example function and add the code below.

When the user clicks the Example button, we will select all the text at the top half of the current page.

C#
VB
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); 
   MessageBox.Show(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); 
   MessageBox.Show(value); 
} 
Imports Leadtools 
Imports Leadtools.Controls 
Imports Leadtools.Document 
Imports Leadtools.Document.Viewer 
Imports Leadtools.Codecs 
Imports Leadtools.Caching 
Imports Leadtools.Annotations.Engine 
Imports Leadtools.Ocr 
 
Dim text As DocumentViewerText = _documentViewer.Text 
 
' First check if we have text for this page 
Dim pageNumber As Integer = _documentViewer.CurrentPageNumber 
If Not text.HasDocumentPageText(pageNumber) Then 
   ' Get the text 
   text.GetDocumentPageText(pageNumber) 
 
   ' Show it 
   Dim value As String = text.ExportText(pageNumber) 
   MessageBox.Show(value) 
End If 
 
' Get the current document 
Dim document As LEADDocument = _documentViewer.Document 
' Get the page and the current view item 
Dim page As DocumentPage = document.Pages(pageNumber - 1) 
' Create a rectangle that is the first half of the page 
Dim bounds As LeadRectD = 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 
Dim imageViewer As 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) Then 
   ' yes, show it 
   Dim value As String = text.GetSelectedText(pageNumber) 
   MessageBox.Show(value) 
End If 

Requirements

Target Platforms

Help Version 20.0.2020.4.3
Products | Support | Contact Us | Intellectual Property Notices
© 1991-2020 LEAD Technologies, Inc. All Rights Reserved.

Leadtools.Document.Viewer.WinForms Assembly