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

フレームを表示

AutoGetTextプロパティ






このDocumentViewerTextが必要に応じて自動的にページのテキストを解析しなければならないかどうか示します。
構文
public bool AutoGetText {get; set;}
'Declaration
 
Public Property AutoGetText As Boolean
'Usage
 
Dim instance As DocumentViewerText
Dim value As Boolean
 
instance.AutoGetText = value
 
value = instance.AutoGetText
public:
property bool AutoGetText {
   bool get();
   void set (    bool value);
}

属性値

そうでない場合、必要であるときこのDocumentViewerTextが自動的にページのテキストを解析するならば、true;false。デフォルト値は、falseです。
解説

DocumentViewerTextは、解析されているページのテキストを必要とする多くの操作を格納します。これは、ページのDocumentPage.GetTextメソッドを呼び出すことによってされます。

GetTextはSVGまたはOCRを用いてページからテキストを解析します、そして、それは遅い操作でありえました。それゆえに、それがDocumentViewerTextによって呼び出されるとき、それが必要であるとき、結果DocumentPageTextオブジェクトは内部的に保存されて、再利用されます。

SetDocumentを使用してDocumentViewer内でユーザーが新しいドキュメントを設定する場合、保存されたDocumentPageTextオブジェクトは破棄されますが、ビューワは必要となるまでどのページのテキストも解析を開始しません。

AutoGetTextは、操作がまだ得られなかったページのためにテキストを必要とするとき、何が起こるかについて制御します。

たとえば、ユーザーはまったく新しい文書でSetDocumentを呼び出し、次にSelectAllを呼び出してページ内のすべてのテキストを選択します。これは、すべてのページをループ処理して、対応するDocumentPageTextオブジェクトからテキストを解析することを必要とします。

この点で、ビューワは任意のDocumentPageTextオブジェクトを保存しておかないで、これらを得るためにGetTextを呼び出す必要があります。AutoGetTextの値がtrueであるならば、ビューワは中からのGetDocumentPageTextを各々のページのためにDocumentPageTextオブジェクトを得て、内部的にそれを保存するループと呼びます。すべてのページが解析されたとき、選択したテキストは更新されることができます、そして、結果はビューを中でハイライトしました。

SelectAllが呼び出される次の時、ビューワは同じアクションを実行するが、今度は、得られるDocumentPageTextを使って、1つ前の操作から保存して、GetDocumentPageTextを呼び出します。

Findなどの操作が呼び出されるとき、SelectAllに似た操作が実行されます。ただし、このメソッドでは現在作業しているページのテキストのみを必要としており、DocumentPageTextが存在するかどうかは、このページに対してのみであり、存在しない場合はGetDocumentPageTextを呼び出して、必要に応じて次のページのみのテキストを取得します。

DocumentViewerTextの大部分の操作は類似した方向で機能します、最初に、エンジンは1つ前の操作から得られるDocumentPageTextオブジェクトを使おうとします、それが存在しないならば、オリジナルドキュメントからテキストを解析して、次の使用のために内部的にそれを保存することはGetDocumentPageTextを呼び出します。

GetDocumentPageTextは、DocumentPage.GetTextを用いてテキストを得ます。特にOCRが使われるならば、これは遅い操作でありえます。したがって、AutoGetTextの値はデフォルトでfalseです、そして、テキストは指示されない限り、ビューワによって自動的に解析されません。

AutoGetTextがアプリケーションに従い、そして、HasAnyDocumentPageTextとともに使われることができます、そして、HasDocumentPageTextOperationイベントは任意の目的のシナリオで実行するのに用いられることができます。

シナリオ

テキストを先に解析します

全部のドキュメントのテキストが常に必要で、これがないと関数を実行できない場合、文書を設定した後でGetAllDocumentPageTextを呼び出します。これはすべてのページをループ処理して、各々のためにGetDocumentPageTextを呼び出します。すべてのDocumentPageTextオブジェクトが得られて、保存されるまで、メソッドは返りません。その後、DocumentViewerTextのどれを用いてでも、メソッドは即時性が高くて、遅延なしです、そして、オリジナルドキュメントがこの目的のために使われません。

他のオプションは、DocumentPageTextオブジェクトを得て、保存するためにDocumentViewerTextを強制するためにループ(結果を破棄する)でGetDocumentPageTextを使うことです。これは、たとえば専用のスレッドからこのメソッドを呼び出して、ループの繰返しの間で操作を中止するのにユーザーを見込むのにアプリケーションを見込みます。

自動的に、必要に応じてテキストを取得します

このモードでは、AutoGetTexttrueに設定します。ここでDocumentPageTextを必要とするDocumentViewerTextメソッドを呼び出すことが反対するとき、GetDocumentPageTextは必要に応じて解析にページを得させるために自動的に呼び出されます。

このメソッドの弱点は、SelectAllなどの操作は最初に呼び出された時、特にページ数が相当多い文書であったりテキストの解析にOCRが使用されていると、相当の時間がかかる点です。したがって、Operationイベントは、ビジーダイアログを表示し、ユーザーが操作を中止できるようにするために使用します。

GetDocumentPageTextでは、ページのDocumentPageTextオブジェクトが事前に取得されているかどうかを確認し、取得されている場合はこのオブジェクトを即座に返します。さもなければ、それはDocumentPage.GetTextを呼び出します。しかしこのメソッドが呼び出される前に、OperationイベントはDocumentViewerOperation.GetText。で発生します。その後、このイベントが発生するときにビジーダイアログを表示し、操作が終わるまでに非常に時間がかかることをユーザーに知らせることができます。

あるいは、アプリケーションは、操作に終える(遅いです)時間がかかるかもしれないかどうか調べるためにメソッドを呼び出す前に、必要に応じてHasAnyDocumentPageTextHasDocumentPageTextを使うことができます。操作が遅いことが分かっている場合、メソッドを呼び出す前にビジーダイアログを表示して、操作を非同期に発生させることができます。

手動で、必要に応じてテキストを取得します

このモードでは、アプリケーションは、必須のテキストオブジェクトが得られる、そして、もしそうならば、操作が即時性が高いだろうならば、それが続行すると確定するために、HasAnyDocumentPageTextHasDocumentPageTextを使います。そうでない場合、操作は遅くなるとユーザーに警告し、継続かキャンセルかのプロンプトが表示されます。ユーザーが続行を選択するとGetDocumentPageTextが呼び出され、実際の操作を呼び出す前にテキストを手動で取得および解析します。

LEADTOOLSドキュメントビューワデモは、オートマチックとマニュアルメソッドを用いてテキストを取得することができます。デモは、2つのモードの間ではじき飛ぶことができるメニュー項目を格納して、アプリケーションがテキスト操作を呼び出す方法を変更します。詳細なサンプルについては、デモのソースコードを参照してください。

必要条件

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

参照

参照

DocumentViewerTextクラス
DocumentViewerTextメンバ

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