ユーザーインターフェイスを備えたアプリケーションを作成する際は、ABBYY FineReader Engine の ビジュアルコンポーネント を使用できます。ビジュアルコンポーネント には、OCR アプリケーション用の独自のユーザーインターフェイスを構築するための、すぐに使える部品が用意されています。 処理中の文書をアプリケーションのユーザーに表示したり、認識結果を検証したり、認識されたテキストを編集したりできるようにできます。ビジュアルコンポーネント は、あらゆる処理シナリオで役立ちます。たとえば、Document Conversion シナリオではテキスト編集機能を提供でき、Field-Level Recognition シナリオでは検証機能が非常に有用です。 ここでは、シンプルな OCR アプリケーションをユーザーインターフェイスの観点から見てみましょう。文書は複数の処理ステップを経ます。Documentation Index
Fetch the complete documentation index at: https://docs.abbyy.com/llms.txt
Use this file to discover all available pages before exploring further.
- 画像を開く
- 認識
- 検証
- エクスポート
ステップ 1. アプリケーションのフォームに ビジュアルコンポーネント を追加する
ステップ 1. アプリケーションのフォームに ビジュアルコンポーネント を追加する
Visual Studio では、ダイアログに ActiveX コントロールを挿入できます。ビジュアルコンポーネント を Toolbox ウィンドウ (Toolbox は View メニューから使用できます) に追加して利用できます。
- Tools メニューで、Choose Toolbox Items (または Add/Remove Toolbox Items) をクリックします。
- 開いたダイアログで、COM Components タブをクリックし、ABBYY DocumentViewer、ABBYY ImageViewer、ABBYY ZoomViewer、ABBYY TextEditor、ABBYY TextValidator コンポーネントを選択します。
- OK をクリックします。選択した項目のアイコンが Toolbox に表示されます。各 ビジュアルコンポーネント のアイコンは、デザインビュー画面にドラッグ&ドロップできます。この操作により、アクティブなプロジェクトファイルに、ビジュアルコンポーネント のインスタンスを作成するための基本コードも追加されます。
- ビジュアルコンポーネント をフォームに追加したら、Visual Studio で使用可能なプロパティを指定できます。たとえば、各コンポーネントの SettingsPath プロパティは、設計時に指定する必要があります。
Visual Studio デザイナーは 64 ビット ActiveX コントロールをサポートしていません。そのため、64 ビット版の ビジュアルコンポーネント を Windows Form アプリケーションに追加することはできません。これは既知の動作であり、Microsoft ActiveX コントロールでも同様の問題が報告されています。詳細は、http://support.microsoft.com/kb/980533/en-us を参照してください。この問題の回避策として、64 ビット システムで ビジュアルコンポーネント を開発者向けインストールの対象として選択すると、FineReader Engine は 32 ビット版と 64 ビット版の両方の ビジュアルコンポーネント をインストールします。この場合、Visual Studio デザイナーでは 32 ビット版のコンポーネントを使用できます。なお、ビジュアルコンポーネント を使用する 64 ビット アプリケーションでは、32 ビット版 ビジュアルコンポーネント をインストールする必要はありません。
手順 2. ビジュアルコンポーネントの同期
手順 2. ビジュアルコンポーネントの同期
Component Synchronizer コンポーネントを使用すると、アプリケーション内のビジュアルコンポーネントを同期できます。つまり、接続されているすべてのコンポーネントで、表示や編集の操作が同期して処理されます。ビジュアルコンポーネントを同期するには、次の手順を実行します。
- フォームのロード時に、新しい ComponentSynchronizer オブジェクトを作成します。
- ComponentSynchronizer オブジェクトの DocumentViewer、ImageViewer、ZoomViewer、TextEditor、TextValidator プロパティを使用して、各コンポーネントを synchronizer に接続します。
C#
手順 3. ABBYY FineReader Engine のロード
手順 3. ABBYY FineReader Engine のロード
ABBYY FineReader Engine を使い始めるには、Engine オブジェクトを作成する必要があります。Engine オブジェクトを作成するには、エクスポート関数 InitializeEngine を使用できます。あわせて、Engine object をロードするその他の方法 も参照してください。Engine オブジェクトは、画像のロード時またはフォームの初期化時にロードできます。
C#
手順 4. 画像を開く
手順 4. 画像を開く
ビジュアルコンポーネントに画像を表示するには、その画像を開く必要があります。画像を開くには、次の手順を実装できます。
- 1 つのドキュメントの画像をロードするには、FRDocument オブジェクトを作成し、そこに画像を追加する必要があります。次のいずれかの方法を使用できます。
- Engine オブジェクトの CreateFRDocumentFromImage メソッドを使用して FRDocument オブジェクトを作成します。このメソッドは FRDocument オブジェクトを作成し、指定したファイルから画像をロードします。
- Engine オブジェクトの CreateFRDocument メソッドを使用して FRDocument オブジェクトを作成し、その後、作成した FRDocument オブジェクトにファイルから画像を追加します (FRDocument オブジェクトの AddImageFile、AddImageFileWithPassword、または AddImageFileWithPasswordCallback メソッドを使用します) 。
- ComponentSynchronizer オブジェクトの Document プロパティを使用して、ドキュメントを Component Synchronizer に接続します。
C#
ステップ 5. ドキュメントの認識
ステップ 5. ドキュメントの認識
ビジュアルコンポーネント での画像認識は、コンポーネントで使用できるコマンド、または FineReader Engine API を使用して実行できます (たとえば、FRDocument object の Process メソッドを参照してください) 。認識には、次の手順を実装できます。
- FRDocument object のメソッドを使用してドキュメントを認識します。
- ドキュメントは ビジュアルコンポーネント GUI を介さずに変更されているため、その変更を ビジュアルコンポーネント に通知する必要があります。ドキュメント内の各ページに対して、FRPage object の Update メソッドを使用します。
C#
ステップ 6. 認識結果の検証
ステップ 6. 認識結果の検証
認識されたデータは Text Validator component を使用して検証できます。このコンポーネントには、文字が正しく認識されているかを確認し、必要に応じて修正できるユーザーインターフェイスが用意されています。検証には、次の手順を実装できます。
- Text Validator component を現在のフォームに追加するか、このコンポーネント用に新しいフォームを作成します。
- Text Validator component を Component Synchronizer に接続します。ComponentSynchronizer object の TextValidator property を使用します。
- TextValidator object の Spell メソッドを使用して、検証プロセスを開始します。
C#
ステップ 7. 結果のエクスポート
ステップ 7. 結果のエクスポート
認識されたドキュメントは、Document Viewer で使用できるコマンド、または FineReader Engine API を使用して保存できます。たとえば、FRDocument object の Export メソッドを使用し、パラメーターの 1 つとして FileExportFormatEnum 定数を指定します。FRDocument object での処理が完了したら、この object が使用していたすべてのリソースを解放してください。IFRDocument::Close メソッドを使用します。この手順は、エクスポートを実行するボタンの “on click” イベント ハンドラーとして使用できます。
C#
ステップ 8. ABBYY FineReader Engine のアンロード
ステップ 8. ABBYY FineReader Engine のアンロード
ABBYY FineReader Engine での作業が完了したら、Engine object をアンロードする必要があります。これには、エクスポートされた DeinitializeEngine 関数を使用します。この手順は、アプリケーションウィンドウを閉じるボタンの “on click” イベント ハンドラーとして使用できます。
Engine のデ初期化の前に Component Synchronizer を解放することをお勧めします。
