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

# Preprocess Method of the FRDocument Object

This method performs preprocessing of all pages in the document: corrects page orientation, inversion, geometrical distortions, performs page splitting if necessary. Preprocessing is performed before layout analysis.

## Syntax

### C++

```cpp theme={null}
HRESULT Preprocess(
  IPagePreprocessingParams* PreprocessingParams,
  IObjectsExtractionParams* ExtractionParams,
  IRecognizerParams*        RecognizerParams
);
```

### C\#

```csharp theme={null}
void Preprocess(
  IPagePreprocessingParams PreprocessingParams,
  IObjectsExtractionParams ExtractionParams,
  IRecognizerParams        RecognizerParams
);
```

### Visual Basic .NET

```vb theme={null}
Sub Preprocess( _
  [PreprocessingParams As IPagePreprocessingParams = Nothing], _
  [ExtractionParams As IObjectsExtractionParams = Nothing], _
  [RecognizerParams As IRecognizerParams = Nothing] _
)
```

## Parameters

PreprocessingParams

\[in] Refers to the [PagePreprocessingParams](/fine-reader/engine/api-reference/parameter-objects/preprocessing-analysis-recognition-and-synthesis-parameters/pagepreprocessingparams) object that stores parameters of preprocessing. This parameter may be 0. In this case, the pages are preprocessed with default parameters, or, if a [profile](/fine-reader/engine/guided-tour/advanced-techniques/working-with-profiles) has been loaded, the parameters set by this profile are used.

ExtractionParams

\[in] Refers to the [ObjectsExtractionParams](/fine-reader/engine/api-reference/parameter-objects/preprocessing-analysis-recognition-and-synthesis-parameters/objectsextractionparams) object that stores parameters of objects extraction. This parameter may be 0. In this case, the objects are extracted with default parameters, or, if a [profile](/fine-reader/engine/guided-tour/advanced-techniques/working-with-profiles) has been loaded, the parameters set by this profile are used.

RecognizerParams

\[in] Refers to the [RecognizerParams](/fine-reader/engine/api-reference/parameter-objects/preprocessing-analysis-recognition-and-synthesis-parameters/recognizerparams) object that stores recognition parameters necessary for preprocessing (e.g., recognition language). This parameter may be 0. In this case, the default parameters are used, or, if a [profile](/fine-reader/engine/guided-tour/advanced-techniques/working-with-profiles) has been loaded, the parameters set by this profile are used.

## Return values

If page preprocessing is interrupted by the user, this method will return E\_ABORT. It also returns the [standard return codes of ABBYY FineReader Engine functions](/fine-reader/engine/api-reference/return-codes).

## Remarks

* This method may report events to the listeners attached to the IConnectionPointContainer interface of the [FRDocument](/fine-reader/engine/api-reference/document-related-objects/frdocument) object.
* For Linux and Windows: Depending on the value of the [IEngine::MultiProcessingParams](/fine-reader/engine/api-reference/engine-object-iengine-interface/properties#multiprocessingparams) property, ABBYY FineReader Engine can distribute preprocessing of multi-page documents to CPU cores.

## See also

[FRDocument](/fine-reader/engine/api-reference/document-related-objects/frdocument)

[Tuning Parameters of Preprocessing, Analysis, Recognition, and Synthesis](/fine-reader/engine/guided-tour/advanced-techniques/tuning-parameters-of-preprocessing-analysis-recognition-and-synthesis)

[Working with Profiles](/fine-reader/engine/guided-tour/advanced-techniques/working-with-profiles)
