BatchProcessor Object (IBatchProcessor Interface)

This is a processor object which converts input images into the recognized pages (FRPage objects).

When processor is initialized, asynchronous recognition processes are invoked and configured. Then the processor takes image files from a custom image source. For each page of the image file a new processing task is created, and this task is passed to one of the recognition processes. If all the tasks for one file have been passed for processing, but not all of the recognition processes are occupied, the next image file from the image queue of the source is taken and passed for processing. This is done until the first image page has been converted and passed to the user. Pages are returned to the user in the order they have been taken from the image source.

To organize processing with the Batch Processor, do the following:

  1. Implement the IImageSource and IFileAdapter interfaces, which provide access to the image source and files in it.
  2. [optional] Implement the IAsyncProcessingCallback interface to manage the processing. The methods of this interface allow you to handle errors and/or cancel the processing.
  3. Call the CreateBatchProcessor method of the Engine object, to receive the BatchProcessor object.
  4. Use the PageFlushingPolicy property to set the mode of working with document pages in memory.
  5. Call the Start method to initialize the processor and invoke asynchronous recognition processes. You can specify the source of images and processing settings in this method.


  • The BatchProcessor object cannot be reused. Repeated calls to the Start method will cause errors.
  • Do not create and use several Batch Processors simultaneously, as this may lead to the confusion of processing pages.
  1. Call the GetNextProcessedPage method in a loop until the method returns 0, which means that there are no more images in the source and all the processed images have been returned to the user.

Important! The page returned by the GetNextProcessedPage method exists until the next call of this method. Therefore, if you want to save this page, you must save it using the methods of the FRPage object or add it to an existing document using the IFRDocument::AddPage method BEFORE the next call of the GetNextProcessedPage method.


Name Type Description
Application Engine, read-only Returns the Engine object.
PageFlushingPolicy PageFlushingPolicyEnum

Specifies if the ImageDocument and the Layout objects for corresponding pages should be unloaded and saved to disk if there are no references to these objects.

Note: To unload and save to disk the ImageDocument and the Layout objects for separate pages of the document, use the IFRPage::Flush method for the corresponding pages.

This property is PFP_Auto by default.


Name Description
GetNextProcessedPage Provides the background processing until the next recognized image is available.
ProcessPageAsync Allows you to repeat processing of a page with another parameters. The page can be pushed at the beginning or at the end of the processing queue.
Start Prepares the Batch Processor for work. The method invokes asynchronous recognition processes, specifies the source of images and processing settings.

Output parameter

This object is the output parameter of the CreateBatchProcessor method of the Engine object.


C# code

This object is used in the following code samples: BatchProcessing; and demo tools: BatchProcessingRecognition.

See also

Parallel Processing with ABBYY FineReader Engine


24.03.2023 8:51:52

Usage of Cookies. In order to optimize the website functionality and improve your online experience ABBYY uses cookies. You agree to the usage of cookies when you continue using this site. Further details can be found in our Privacy Notice.