> For the complete documentation index, see [llms.txt](https://docs.apryse.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.apryse.com/core/ocr/ocr.md).

# OCR Library for Server/Desktop

Optical Character Recognition (OCR) with Apryse Server SDK, taking image based versions of characters and converting them into machine encoded text.  Code samples offered in Python, Java, C#, .NET, no

{% hint style="info" %}
**Requirements**

*These packages are required to use these features in production. Trial keys have unlimited access to all features*

<a href="https://apryse.com/capabilities#OpticalCharacterRecognition(OCR)" class="button primary">Package: OCR</a><a href="/core/learn-more/modules.md#default-ocr-module" class="button primary">Module: OCR</a><a href="https://showcase.apryse.com/ocr-module" class="button primary">Live demo</a>
{% endhint %}

[Optical Character Recognition](https://en.wikipedia.org/wiki/Optical_character_recognition) (OCR) is the process of taking image-based versions of characters and converting them into machine encoded text. This enables your application to recognize and convert characters from scanned images or image-based documents into machine-readable, searchable text.

This capability is essential for transforming static visual content—such as scanned books, photos of documents, or handwritten forms—into usable digital text that can be indexed, selected, copied, or searched.

Some popular use cases include:

* Data entry for business documents, e.g. Cheque, passport, invoice, bank statement and receipts
* Extracting business card information into a contact list
* making textual versions of printed documents more quickly, e.g. book scanning
* Making electronic images of printed documents searchable
* Assistive technology for blind and visually impaired users
* Making scanned documents searchable by converting them to searchable PDFs

## OCR module options

You have three OCR options to choose from when using OCR with the Apryse Server SDK:

* Default OCR
* Alternative OCR
* IRIS OCR

The Apryse Server SDK offers a downloadable default [OCR Module](/core/learn-more/modules.md#default-ocr-module) as an optional add-on utility in order to use OCR with the SDK. It is currently available on Windows, Linux, and macOS.

The default OCR Module is the newest OCR and delivers strong recognition capabilities across a wide range of document types. Beginning with version 12.0, it is based on modern Deep Learning Neural Networks for better accuracy and a wider variety of OCR language selection.

The default OCR module:

* Significantly improves accuracy on real-world documents and performs better on low-quality scans and complex layouts.
* Language coverage is greater and includes CJK, Portuguese, and additional Latin-alphabet languages.
* Extracted text is available as structured JSON or XML for downstream search, indexing, and AI pipelines – all processed on-premise or server-side, cross-platform, so documents never leave the customer's environment.

The previous V11 OCR Module is still available under the [Alternative OCR Module](/core/learn-more/modules.md#alternative-ocr-module) section. For those who prioritize faster processing time on leaner hardware and less memory consumption, the alternative OCR Module may be the better choice.

For advanced layout scenarios—such as pages with multiple disconnected text regions like magazine covers or CAD drawings—you can optionally use the [IRIS OCR Module](/core/learn-more/modules.md#ocr-by-iris-module), which may provide improved accuracy and layout interpretation. The IRIS module is available as an additional add-on for Windows and Linux platforms.

Using an OCR module, the SDK can create searchable and selectable text from images or PDFs, producing either a PDF with selectable text, or outputting just the text position data in reusable JSON or XML form.

### Performance of V12

The default OCR Module offers about 16% better word recognition accuracy due to its modern Deep Learning Neural Network-based implementation. It does not require a GPU to run.

The alternative and IRIS OCR modules offer 2-3x shorter processing time and less memory usage, ideal for those on limited hardware, or when speed is an absolute priority.

## Output Formats and Image Support

Once integrated, the OCR Module enables the SDK to generate Searchable PDFs with selectable text layers

The module takes advantage of [pdftron.PDF.Convert.ToPdf](/core/conversion/convert-multiple.md) internally and accepts multiple image formats, as well as PDFs with only raster images. The result quality depends on image supplied. The ideal image is color or grayscale with resolution in the vicinity of [300 DPI](/core/ocr/resolution.md).

## Supported Languages (Default OCR)

The default OCR includes models optimized for English-language scenarios, as well as multilingual models supporting over 80 languages.

### Latin

* English - en
* Afrikaans - af
* Azerbaijani - az
* Bosnian - bs
* Catalan - ca
* Czech - cs
* Welsh - cy
* Danish - da
* German - de
* Spanish - es
* Estonian - et
* Basque - eu
* Finnish - fi
* French - fr
* Irish - ga
* Galician - gl
* Croatian - hr
* Hungarian - hu
* Indonesian - id
* Icelandic - is
* Italian - it
* Latin - la
* Luxembourgish - lb
* Lithuanian - lt
* Latvian - lv
* Māori - mi
* Malay - ms
* Maltese - mt
* Dutch - nl
* Norwegian - no
* Occitan - oc
* Pali - pi
* Polish - pl
* Portuguese - pt
* Quechua - qu
* Romansh - rm
* Romanian - ro
* Serbian (Latin script) - sr-Latn
* Slovak - sk
* Slovenian - sl
* Albanian - sq
* Swedish - sv
* Swahili - sw
* Tagalog - tl
* Turkish - tr
* Uzbek - uz
* Vietnamese - vi

### Cyrillic

* Russian - ru
* Belarusian - be
* Ukrainian - uk
* Serbian (Cyrillic script) - sr-Cyrl
* Bulgarian - bg
* Mongolian - mn
* Abaza - abq
* Adyghe - ady
* Kabardian - kbd
* Avar - av
* Dargwa - dar
* Ingush - inh
* Chechen - ce
* Lak - lbe
* Lezghian - lez
* Tabasaran - tab
* Kazakh - kk
* Kyrgyz - ky
* Tajik - tg
* Macedonian - mk
* Tatar - tt
* Chuvash - cv
* Bashkir - ba
* Meadow Mari - mhr
* Moldovan / Moldavian - mo
* Udmurt - udm
* Komi - kv
* Ossetian - os
* Buryat - bua
* Kalmyk / Oirat - xal
* Tuvan - tyv
* Yakut / Sakha - sah
* Karakalpak - kaa

{% hint style="info" %}
Text orientation detection is not supported.
{% endhint %}

### CJK

* Simplified Chinese - zh
* Traditional Chinese - zh-Hant
* Japanese - ja
* Korean - ko

{% hint style="info" %}
Text orientation detection is not supported for Korean language.

Korean language can’t be mixed with the rest of the group.
{% endhint %}

### Devanagari

* Hindi - hi
* Marathi - mr
* Nepali - ne
* Bihari - bh
* Maithili - mai
* Angika - anp
* Bhojpuri - bho
* Magahi - mag
* Sadri / Nagpuri - sck
* Newari / Nepal Bhasa - new
* Konkani - gom
* Sanskrit - sa
* Bagri - bgc

{% hint style="info" %}
Text orientation detection is not supported.
{% endhint %}

### Arabic

* Arabic - ar
* Persian (Farsi) - fa
* Uyghur - ug
* Urdu - ur
* Pashto - ps
* Kurdish - ku
* Sindhi - sd
* Balochi - bal

{% hint style="info" %}
Text orientation detection is not supported.
{% endhint %}

### Other

* Greek - el
* Georgian - ka
* Tamil - ta
* Telugu - te
* Thai - th

{% hint style="info" %}
These languages can’t be mixed.
{% endhint %}

### Mixing Languages

{% hint style="info" %}
**Note:** You can include more than one language in the same document (for example, English + Arabic). The OCR engine can recognize mixed-language content as long as the selected languages are supported and follow the rules below.
{% endhint %}

**Rules:**

* You can mix English with any other language.
* You can mix languages that belong to the same script grouping, for example, you may mix any of the Latin languages.
* Any other mixing of languages will result in an error.
* Korean can only be mixed with English language.
* Languages in the "Other" group can’t be mixed wit each other, and can only be mixed with English language.

## Supported Languages (Alternative OCR)

* English - eng
* French - fra
* German - deu
* Italian - ita
* Spanish - spa
* Russian - rus

## Supported Languages (IRIS OCR)

* English - eng
* French - fra
* German - deu
* Italian - ita
* Spanish - spa
* Russian - rus
* Simplified Chinese - chi\_sim
* Traditional Chinese - chi\_tra
* Japanese - jpn
* Korean - kor

## Get started

[OCR workflow](/core/ocr/workflow.md) In this section, we showcase the potential OCR workflow.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.apryse.com/core/ocr/ocr.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `build a script that syncs our docs to a CMS` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
