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

# Recognition settings

Recognition is controlled by FineReader Engine profiles: a predefined profile, plus an optional user profile (an INI file) whose settings override it. Languages, accuracy mode, table detection, and every other engine setting come from the profile.

Every job uses the deployment's default profile unless its request sends its own.

## The deployment default

| Value | Description |
| - | - |
| `worker.predefinedProfile` | The predefined profile. Default `DocumentConversion_Normal`. |
| `worker.userProfile` | A user profile as a multi-line string. Empty by default. |

This profile is a good starting point for your own:

```ini profile.ini theme={null}
[PagePreprocessingParams]
CorrectOrientationMode = COM_No

[PageAnalysisParams]
DetectTables = true
DetectPictures = true
DetectTextOnPictures = true

[SynthesisParamsForDocument]
DetectDocumentStructure = true

[RecognizerParams]
LanguageDetectionMode = TSPV_No
TextLanguage = English
Mode = RM_Accurate
LowResolutionMode = true

[XMLExportParams]
WriteCharFormatting = true
WriteParagraphStyles = true
```

If FineReader Engine refuses the default profile, workers stay unready and take no work. See [Troubleshooting](https://docs.abbyy.com/fine-parser/enterprise/reference/troubleshooting.md#workers-are-unready). After changing `worker.userProfile`, restart the workers. See [Applying changes](https://docs.abbyy.com/fine-parser/enterprise/basics/configuration.md#applying-changes).

## Per-request profiles

Send `baseProfile` and `userIni` together with `POST /parse`. They replace the default for that request's jobs.

| Field | Value |
| - | - |
| `baseProfile` | A predefined profile name. |
| `userIni` | A user profile, as a field or a file. UTF-8, up to 1 MiB. |

```bash theme={null}
sed 's/TextLanguage = English/TextLanguage = German/' profile.ini > german.ini
curl -F files=@brief.pdf -F outputTypes=txt \
  -F baseProfile=DocumentConversion_Normal -F userIni=@german.ini \
  http://localhost:8080/parse
```

Predefined profiles: `DocumentConversion_Normal`, `DocumentConversion_Accuracy`, `DocumentArchiving_Accuracy`, `DocumentArchiving_Speed`, `TextExtraction_Accuracy`, `TextExtraction_Speed`, `DataExtraction`, `FieldLevelRecognition`, `BarcodeRecognition`, `BarcodeRecognition_Accuracy`, `BarcodeRecognition_Speed`, `HighCompressedImageOnlyPdf`, `BusinessCardsProcessing`, `MachineReadableZone`, `EngineeringDrawingsProcessing`.

A profile FineReader Engine refuses fails the job with reason `profile-rejected`, and the message names the setting. It is not retried.

## Reference

* [Predefined profiles](https://docs.abbyy.com/fine-reader/engine/specifications/predefined-profiles-specification.md)
* [Working with profiles](https://docs.abbyy.com/fine-reader/engine/guided-tour/advanced-techniques/working-with-profiles.md)
* [Languages](https://docs.abbyy.com/fine-parser/basics/languages.md): the languages FineReader Engine recognizes, by name
