> ## 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.

# BatchProcessor オブジェクト（IBatchProcessor インターフェイス）

> ABBYY FineReader Engine API の BatchProcessor オブジェクト（IBatchProcessor インターフェイス）— 入力画像を認識済みページ（FRPage オブジェクト）に変換するプロセッサ オブジェクトです。

<Note>
  このオブジェクトは、Linux および Windows 向けの FRE に実装されています。
</Note>

これは、入力画像を認識済みページ ([FRPage](/ja/fine-reader/engine/api-reference/document-related-objects/frpage) オブジェクト) に変換するプロセッサ オブジェクトです。

プロセッサが初期化されると、非同期の認識プロセスが起動され、設定されます。次に、プロセッサはカスタム画像ソースから画像ファイルを取得します。画像ファイルの各ページに対して新しい処理タスクが作成され、そのタスクは認識プロセスのいずれか 1 つに渡されます。1 つのファイルに対するすべてのタスクが処理に回され、なおかつ認識プロセスのすべてが使用中ではない場合は、ソースの画像キューから次の画像ファイルが取得され、処理に回されます。これは、最初の画像ページが変換されてユーザーに渡されるまで続きます。ページは、画像ソースから取得された順序でユーザーに返されます。

Batch Processor を使用して処理を構成するには、次の手順を実行します。

1. 画像ソースおよびその中のファイルへのアクセスを提供する [IImageSource](/ja/fine-reader/engine/api-reference/batch-processor/iimagesource) インターフェイスと [IFileAdapter](/ja/fine-reader/engine/api-reference/batch-processor/ifileadapter) インターフェイスを実装します。
2. \[任意] 処理を管理するために [IAsyncProcessingCallback](/ja/fine-reader/engine/api-reference/batch-processor/iasyncprocessingcallback) インターフェイスを実装します。このインターフェイスのメソッドを使用すると、エラーを処理したり、処理をキャンセルしたりできます。
3. [Engine](/ja/fine-reader/engine/api-reference/engine-object-iengine-interface) オブジェクトの [CreateBatchProcessor](/ja/fine-reader/engine/api-reference/engine-object-iengine-interface/creation-methods/createlessobjectgreater-methods) メソッドを呼び出して、BatchProcessor オブジェクトを取得します。
4. PageFlushingPolicy プロパティを使用して、メモリ内の文書ページの処理モードを設定します。
5. Start メソッドを呼び出して、プロセッサを初期化し、非同期の認識プロセスを開始します。このメソッドでは、画像ソースと処理設定を指定できます。

* BatchProcessor オブジェクトは再利用できません。Start メソッドを繰り返し呼び出すとエラーが発生します。
* 複数の Batch Processor を同時に作成して使用しないでください。処理中のページが混同されるおそれがあります。

6. GetNextProcessedPage メソッドが 0 を返すまで、ループで呼び出します。0 は、ソース内にこれ以上画像がなく、処理済みのすべての画像がユーザーに返されたことを意味します。

<Warning>
  GetNextProcessedPage メソッドによって返されるページは、このメソッドの次回の呼び出しまで有効です。したがって、このページを保存する場合は、GetNextProcessedPage メソッドを次に呼び出す前に、[FRPage](/ja/fine-reader/engine/api-reference/document-related-objects/frpage) オブジェクトのメソッドを使用して保存するか、[IFRDocument::AddPage](/ja/fine-reader/engine/api-reference/document-related-objects/frdocument/addpage-method) メソッドを使用して既存の文書に追加する必要があります。
</Warning>

<div id="properties">
  ## プロパティ
</div>

| 名前                 | 型                                                                                                                                                                                                                | 説明                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| ------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| Application        | [Engine](/ja/fine-reader/engine/api-reference/engine-object-iengine-interface), [読み取り専用](/ja/fine-reader/engine/guided-tour/advanced-techniques/programming-aspects/working-with-properties#readonly_properties) | Engine オブジェクトを返します。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| PageFlushingPolicy | [PageFlushingPolicyEnum](/ja/fine-reader/engine/api-reference/enumerations/pageflushingpolicyenum)                                                                                                               | 対応するページの [ImageDocument](/ja/fine-reader/engine/api-reference/image-related-objects/imagedocument) オブジェクトおよび [Layout](/ja/fine-reader/engine/api-reference/layout-related-objects/layout) オブジェクトへの参照が存在しない場合に、それらをアンロードしてディスクに保存するかどうかを指定します。 <Note> Linux では、このプロパティの値が PFP\_KeepInMemory に設定されている場合、未使用ページの ImageDocument オブジェクトおよび Layout オブジェクトはディスクに保存されません。 </Note> <Note> Windows でドキュメント内の個々のページについて ImageDocument オブジェクトおよび Layout オブジェクトをアンロードしてディスクに保存するには、対応するページに対して [IFRPage::Flush](/ja/fine-reader/engine/api-reference/document-related-objects/frpage/flush-method) メソッドを使用します。 </Note> このプロパティの既定値は PFP\_Auto です。 |

<div id="methods">
  ## メソッド
</div>

| 名前                                                                                                                      | 説明                                                                  |
| ----------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------- |
| [GetNextProcessedPage](/ja/fine-reader/engine/api-reference/batch-processor/batchprocessor/getnextprocessedpage-method) | 次の認識済み画像が利用可能になるまで、バックグラウンドで処理を実行します。                               |
| [ProcessPageAsync](/ja/fine-reader/engine/api-reference/batch-processor/batchprocessor/processpageasync-method)         | 別のパラメーターを指定して、ページを再処理できます。ページは処理キューの先頭または末尾に追加できます。                 |
| [Start](/ja/fine-reader/engine/api-reference/batch-processor/batchprocessor/start-method)                               | Batch Processor を動作可能な状態にします。このメソッドは非同期の認識処理を開始し、画像のソースと処理設定を指定します。 |

<div id="output-parameter">
  ## 出力パラメーター
</div>

このオブジェクトは、[Engine](/ja/fine-reader/engine/api-reference/engine-object-iengine-interface) オブジェクトの [CreateBatchProcessor](/ja/fine-reader/engine/api-reference/engine-object-iengine-interface/creation-methods/createlessobjectgreater-methods) メソッドの出力パラメーターです。

<div id="samples">
  ## サンプル
</div>

<Accordion title="C# コード">
  ```csharp theme={null}
  // Batch Processor を作成
  FREngine.IBatchProcessor batchProcessor = engine.CreateBatchProcessor();
  FREngine.IFRDocument document = engine.CreateFRDocument();
  // プロセッサを初期化
  FREngine.IImageSource imageSource = new CImageSource; // このクラスはユーザーが実装します
  batchProcessor.PageFlushingPolicy = FREngine.PageFlushingPolicyEnum.PFP_KeepInMemory;
  batchProcessor.Start( imageSource, null, null, null );
  // 処理を開始
  while( true ) {
   FREngine.IFRPage page = batchProcessor.GetNextProcessedPage();
   if( page == null ) {
    break; // これ以上ページがないため、処理を終了
   }
   // ページに対して何らかの処理を行う
   ...
   document.AddPage( page );
  }
  ```
</Accordion>

このオブジェクトは、次のコード サンプル [BatchProcessing](/ja/fine-reader/engine/guided-tour/samples#batchprocessing) およびデモ ツール [BatchProcessingRecognition](/ja/fine-reader/engine/guided-tour/samples#batchprocessingrecognition) で使用されています。

<div id="see-also">
  ## 関連項目
</div>

[Parallel Processing with ABBYY FineReader Engine](/ja/fine-reader/engine/guided-tour/advanced-techniques/parallel-processing)

[IImageSource](/ja/fine-reader/engine/api-reference/batch-processor/iimagesource)
