LEADTOOLS Leadtools.Documents.UI(Leadtools.Documents.UIアセンブリ)

フレームを表示

DocumentViewerTextクラス






メンバ 
このドキュメントビューワでテキスト操作を管理します。
オブジェクトモデル
構文
public class DocumentViewerText 
'Declaration
 
Public Class DocumentViewerText 
'Usage
 
Dim instance As DocumentViewerText
public ref class DocumentViewerText 
解説

DocumentViewerTextは、DocumentViewerTextプロパティによってアクセスできます。インスタンスは、コントロールが作成されるとき常に利用できて、決してnullでありません。

このクラスは、ドキュメントビューワで現在の文書セットのテキスト操作を管理します。テキストは読み取り専用オプションとして扱われ変更できません。実行される操作には、マウスやタッチを使用した文字、語句または行の選択、選択したページのテキストのハイライト表示、「Find(検索)」、「Find Next(次を検索)」、および「Find Previous(1つ前を検索)」を用いた文書内のフリーテキスト検索、およびテキストを単純な文字列としてまたはクリップボードへのエクスポート、等があります。

文書ページのテキストは、DocumentPage.GetTextメソッドを使用して取得します。これにより、SVGまたはOCR技術を用いてページ上に見つかる任意のテキスト要素を解析し、ページ内に見つかった各テキスト文字の文字コード、場所およびサイズを含むDocumentPageTextオブジェクトでこれを返します。

DocumentViewerTextItemクラスは、ページの上で選択したテキスト項目の情報を格納します。これはページ番号を含みます。そして、選択のバウンディング四角形ならびに文字の範囲が対応するDocumentPageTextで選択されます。

DocumentViewerTextは、DocumentViewerTextItem項目リストの内部における選択状態を追跡します。文字選択が変更するとき、このリストは現在の状態を反映するために更新されます。これらの項目は、DocumentViewer.View.ImageViewerの上で現在の文字選択をハイライトするのにも用いられます。

DocumentViewerSelectTextInteractiveModeは、マウスまたはタッチを用いてインタラクティブにテキストを選択するその主なアクションを実行するために、DocumentViewerTextのメソッドを使います。ハイライト、下線打消し線やテキストの改訂などAnnTextReviewObjectオブジェクトの描画デザイナも、アノテーションサポートが使用される場合このクラスのメソッドを使用して、操作を実行します。

特にOCRが使われるならば、テキストを得ることは時間がかかる操作でありえます。したがって、DocumentViewerTextは必要に応じてテキストのみを得ようとして、それから内部的にDocumentPageText項目を保存して、再利用します。

AutoGetTextプロパティは、テキストがどのようにアプリケーションの必要性によって得られて、設定されなければならないかことを制御します。

ドキュメントから、そして、文字選択が変更するならばテキストが得られるとき、DocumentViewerTextはユーザーに知らせるためにOperationイベントを使います。詳細については、「ドキュメントビューワの操作」を参照してください。

このクラスのメソッドに加えて、アプリケーションは、テキストと対話するために、コマンドシステムを使うことができます。詳細については、「ドキュメントビューワのコマンドのテキストセクション」を参照してください。

サンプル

DocumentViewerでサンプルを作成して開始して、例関数ですべてのcodeを削除して、下記のcodeを追加します。

ユーザーが例ボタンをクリックするとき、現在のページの上半分ですべてのテキストを選択します。

Copy Code  
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
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);
}
必要条件

ターゲットプラットホーム

参照

参照

DocumentViewerTextメンバ
Leadtools.Documents.UI名前空間
LEADTOOLSドキュメントビューワの使用

Leadtools.Documents.UIは、DocumentまたはMedicalツールキットのライセンスと、解除キーが必要です。詳細は、以下を参照してください。Imaging Pro/Document/Medicalの機能