# OCRParams Class

> Parameters for configuring the OCR (Optical Character Recognition) engine.

- Product: Adobe PDF Library 18
- Language: Java
- Version: APDFL18.0.5PlusP2e
- HTML page: https://docs.datalogics.com/apdfl18/Java/APDFL18.0.5PlusP2e/class/OCRParams
- Version index: https://docs.datalogics.com/apdfl18/Java/APDFL18.0.5PlusP2e/llms.txt

```java
class OCRParams
```

**Namespace:** `com::datalogics::PDFL`

## Description

Parameters for configuring the OCR (Optical Character Recognition) engine. OCRParams controls settings such as the engine to use, the resolution of the input images, the language(s) to recognize, performance tuning, page segmentation mode, candidate font names for placing text, and image preprocessing options.

**Referenced by:** [`OCREngine`](https://docs.datalogics.com/apdfl18/Java/APDFL18.0.5PlusP2e/class/OCREngine.md)

**Uses types:** [`LanguageSetting`](https://docs.datalogics.com/apdfl18/Java/APDFL18.0.5PlusP2e/class/LanguageSetting.md)

## Constructors

### OCRParams

```java
com.datalogics.PDFL.OCRParams.OCRParams()
```

*constructor*

Create an OCRParams structure with defaults.

## Methods

### delete

```java
synchronized void com.datalogics.PDFL.OCRParams.delete(Boolean disposing)
```

*protected*

**Parameters**

- `disposing` (`Boolean`)

**Returns:** `synchronized void`

### delete

```java
synchronized void com.datalogics.PDFL.OCRParams.delete()
```

**Returns:** `synchronized void`

### finalize

```java
void com.datalogics.PDFL.OCRParams.finalize()
```

*protected*

**Returns:** `void`

### getCandidateFontNames

```java
java.util.List< String > com.datalogics.PDFL.OCRParams.getCandidateFontNames()
```

**Returns:** `java.util.List< String >`

The names of candidate fonts for placing text under an image. The default list should work well in most cases. If you're using text that isn't represented by Latin fonts, or by Chinese, Japanese, or Korean fonts, then retrieve this list, add the font that can represent that text, then set that new list on this object.

Enough font names must be supplied to cover the expected languages/scripts in use.

The code selects a font to represent each word. If a word code-switches between different scripts, for instance, if it contains non-Latin text and Arabic numerals, then make sure to supply the name of a font family that can handle both the text and the numerals.

The quality of the results depends on the font choice. The list is searched in order until a font works for a particular word. To make the text fit better, it's recommended to list proportional fonts before fixed-width fonts. Decorative fonts with flourishes, like Zapf Chancery, deliver poor results. Generally, supply a font that would be used in block text, such as in a newspaper or work of literature, such as Times Roman, or a font already in the list, like MinionPro.

If the PlaceTextUnder method in OCREngine can't identify a font that covers the whole text of a word, an exception will be thrown.

### getConfigurationParameters

```java
java.util.Map< String, String > com.datalogics.PDFL.OCRParams.getConfigurationParameters()
```

**Returns:** `java.util.Map< String, String >`

Get the configuration parameters. Note: Reserved for internal use. Do not use unless directed to by Datalogics Support.

### getEnableImagePreprocessing

```java
boolean com.datalogics.PDFL.OCRParams.getEnableImagePreprocessing()
```

**Returns:** `boolean`

Get the image preprocessing enable state.True if any image preprocessing is on.

### getEngine

```java
String com.datalogics.PDFL.OCRParams.getEngine()
```

**Returns:** `String`

The name of the OCR engine to use. Use the Tesseract4Engine constant to select the Tesseract v4 engine.

### getLanguages

```java
java.util.List< LanguageSetting > com.datalogics.PDFL.OCRParams.getLanguages()
```

**Returns:** [`java.util.List< LanguageSetting >`](https://docs.datalogics.com/apdfl18/Java/APDFL18.0.5PlusP2e/class/LanguageSetting.md)

The list of languages the OCR engine should recognize.

### getPageSegmentationMode

```java
PageSegmentationMode com.datalogics.PDFL.OCRParams.getPageSegmentationMode()
```

**Returns:** `PageSegmentationMode`

The page segmentation mode, which controls how the OCR engine detects text regions on the page.

### getPerformance

```java
Performance com.datalogics.PDFL.OCRParams.getPerformance()
```

**Returns:** `Performance`

The desired performance mode for the OCR engine, balancing speed versus accuracy.

### getResolution

```java
double com.datalogics.PDFL.OCRParams.getResolution()
```

**Returns:** `double`

The resolution, in DPI, at which images are rendered for OCR processing.

### getTesseract4Engine

```java
static String com.datalogics.PDFL.OCRParams.getTesseract4Engine()
```

*static*

**Returns:** `String`

The name of the Tesseract v4 engine. Pass this value to the Engine property to select the Tesseract v4 engine.

### setCandidateFontNames

```java
void com.datalogics.PDFL.OCRParams.setCandidateFontNames(java.util.List< String > candidateFonts)
```

**Parameters**

- `candidateFonts` (`java.util.List< String >`)

**Returns:** `void`

The names of candidate fonts for placing text under an image. The default list should work well in most cases. If you're using text that isn't represented by Latin fonts, or by Chinese, Japanese, or Korean fonts, then retrieve this list, add the font that can represent that text, then set that new list on this object.

Enough font names must be supplied to cover the expected languages/scripts in use.

The code selects a font to represent each word. If a word code-switches between different scripts, for instance, if it contains non-Latin text and Arabic numerals, then make sure to supply the name of a font family that can handle both the text and the numerals.

The quality of the results depends on the font choice. The list is searched in order until a font works for a particular word. To make the text fit better, it's recommended to list proportional fonts before fixed-width fonts. Decorative fonts with flourishes, like Zapf Chancery, deliver poor results. Generally, supply a font that would be used in block text, such as in a newspaper or work of literature, such as Times Roman, or a font already in the list, like MinionPro.

If the PlaceTextUnder method in OCREngine can't identify a font that covers the whole text of a word, an exception will be thrown.

### setConfigurationParameters

```java
void com.datalogics.PDFL.OCRParams.setConfigurationParameters(java.util.Map< String, String > configurationParams)
```

**Parameters**

- `configurationParams` (`java.util.Map< String, String >`)

**Returns:** `void`

Set the configuration parameters. Note: Reserved for internal use. Do not use unless directed to by Datalogics Support.

### setEnableImagePreprocessing

```java
void com.datalogics.PDFL.OCRParams.setEnableImagePreprocessing(boolean enable)
```

**Parameters**

- `enable` (`boolean`)

**Returns:** `void`

Enable all image preprocessing, default enabled.Note that once the OCREngine is initialized, this setting is permanent.

### setEngine

```java
void com.datalogics.PDFL.OCRParams.setEngine(String value)
```

**Parameters**

- `value` (`String`)

**Returns:** `void`

The name of the OCR engine to use. Use the Tesseract4Engine constant to select the Tesseract v4 engine.

### setLanguages

```java
void com.datalogics.PDFL.OCRParams.setLanguages(java.util.List< LanguageSetting > languages)
```

**Parameters**

- `languages` ([`java.util.List< LanguageSetting >`](https://docs.datalogics.com/apdfl18/Java/APDFL18.0.5PlusP2e/class/LanguageSetting.md))

**Returns:** `void`

The list of languages the OCR engine should recognize.

### setPageSegmentationMode

```java
void com.datalogics.PDFL.OCRParams.setPageSegmentationMode(PageSegmentationMode mode)
```

**Parameters**

- `mode` (`PageSegmentationMode`)

**Returns:** `void`

The page segmentation mode, which controls how the OCR engine detects text regions on the page.

### setPerformance

```java
void com.datalogics.PDFL.OCRParams.setPerformance(Performance performanceSetting)
```

**Parameters**

- `performanceSetting` (`Performance`)

**Returns:** `void`

The desired performance mode for the OCR engine, balancing speed versus accuracy.

### setResolution

```java
void com.datalogics.PDFL.OCRParams.setResolution(double value)
```

**Parameters**

- `value` (`double`)

**Returns:** `void`

The resolution, in DPI, at which images are rendered for OCR processing.
