Manages the text operations in this document viewer.
public class DocumentViewerText : IDisposable
Public Class DocumentViewerText
public:
ref class DocumentViewerText
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 Document 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.
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.
using Leadtools;
using Leadtools.Controls;
using Leadtools.Documents;
using Leadtools.Documents.UI;
using Leadtools.Codecs;
using Leadtools.Caching;
using Leadtools.Annotations.Core;
using Leadtools.Forms.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.Documents
Imports Leadtools.Documents.UI
Imports Leadtools.Codecs
Imports Leadtools.Caching
Imports Leadtools.Annotations.Core
Imports Leadtools.Forms.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 Document = _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
Raster .NET | C API | C++ Class Library | JavaScript HTML5
Document .NET | C API | C++ Class Library | JavaScript HTML5
Medical .NET | C API | C++ Class Library | JavaScript HTML5
Medical Web Viewer .NET
Your email has been sent to support! Someone should be in touch! If your matter is urgent please come back into chat.
Chat Hours:
Monday - Friday, 8:30am to 6pm ET
Thank you for your feedback!
Please fill out the form again to start a new chat.
All agents are currently offline.
Chat Hours:
Monday - Friday
8:30AM - 6PM EST
To contact us please fill out this form and we will contact you via email.