> 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/learn-more/modules.md).

# Explore Library Module Add-ons for Apryse Server SDK

Enhance your Apryse SDK with add-on modules like Handwriting ICR, OCR, and CAD for advanced functionality. Download now for seamless integration and improved performance.

Some Apryse SDK features require an add-on module, a separate binary you install alongside the SDK. This is usually because including the module within the main library would make it too large. This page lists the available modules and how to install them.

All of the Add-on modules require the Apryse SDK to function correctly. If you haven't set up the SDK yet, follow the [get started guide](/core/get-started/get-started.md) first.

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

Currently, on Windows, the following modules are supported only in x64 environments. Support for additional modules on ARM-based devices may be added in a future release.
{% endhint %}

### Install and register a module

Specific installation steps depend on the module and on your selected programming language. Every module must be registered with the SDK so it can be found at runtime.

#### Module availability

The following table lists the installation methods available for each module. A dash means the module isn't available through that method; use the manual download instead.

| **Module**                 | **npm**                    | **pip**                  | **Manual download**                                   |
| -------------------------- | -------------------------- | ------------------------ | ----------------------------------------------------- |
| Default OCR                | —                          | —                        | Windows (x64), Linux (x64), macOS (ARM64)             |
| Alternative OCR            | —                          | `apryse-ocr`             | Windows (x64), Linux (x64), macOS (x64)               |
| OCR by IRIS                | —                          | —                        | Windows (x64), Linux (x64), macOS (x64)               |
| Handwriting ICR            | —                          | —                        | Windows (x64), Linux (x64), macOS (ARM64)             |
| CAD                        | `@pdftron/cad`             | `apryse-cad`             | Windows (x64), Linux (x64)                            |
| Advanced Imaging           | —                          | —                        | Windows (x64), Linux (x64), macOS (x64)               |
| Structured Output          | —                          | —                        | Windows (x64), Linux (x64, ARM64), macOS (x64, ARM64) |
| Data Extraction            | `@pdftron/data-extraction` | `apryse-data-extraction` | Windows (x64), Linux (x64)                            |
| Barcode                    | —                          | —                        | Windows (x64), Linux (x64)                            |
| PDF2HTML Reflow Paragraphs | —                          | —                        | Windows (x64), Linux (x64)                            |
| HTML2PDF                   | —                          | —                        | Windows (x64), Linux (x64, ARM64), macOS (x64, ARM64) |
| Print to PDF               | —                          | —                        | Windows (x64)                                         |

On Apple Silicon, macOS (x64) builds run through Rosetta 2. macOS (ARM64) builds don't run on Intel Macs.

The Data Extraction module is also available from Maven as `DataExtractionModuleWindows` and `DataExtractionModuleLinux`, and the Alternative OCR module as `AlternativeOCRModuleWindows`, `AlternativeOCRModuleLinux`, and `AlternativeOCRModuleMac` (group ID `com.pdftron`). Maven installs use the Apryse Maven repository; to enable it, see the Maven tab in step 2 of [Get started with Java](/core/get-started/languages/java.md#2-add-the-apryse-sdk).

#### Install with a package manager

You can install a module as a package using pip or npm.

**Install a module using pip**

1. Install the package:

{% tabs %}
{% tab title="Shell" %}
{% code lineNumbers="true" %}

```shell
pip install --extra-index-url=https://pypi.apryse.com <package_name>
```

{% endcode %}
{% endtab %}
{% endtabs %}

Replace `<package_name>` with your specific package, for example `apryse_ocr`.

2. Import the package in your code. The import registers the module for you. For example:

{% tabs %}
{% tab title="Python" %}
{% code lineNumbers="true" %}

```python
import apryse_ocr
```

{% endcode %}
{% endtab %}
{% endtabs %}

**Install a module using npm**

1. Install the package:

{% tabs %}
{% tab title="Shell" %}
{% code lineNumbers="true" %}

```shell
npm install @pdftron/cad
```

{% endcode %}
{% endtab %}
{% endtabs %}

2. In your code, register the package's module path after initializing the SDK:

{% tabs %}
{% tab title="JavaScript" %}
{% code lineNumbers="true" %}

```js
await PDFNet.addResourceSearchPath('./node_modules/@pdftron/cad/lib');
```

{% endcode %}
{% endtab %}
{% endtabs %}

#### Install a module manually

If a module isn't available for your language, install it manually. You can place the module as follows:

* Next to the SDK: if you use the manually downloaded C or C++ SDK, extract the module archive directly into the SDK directory (for example, `PDFNetC64` or, for the ARM64 package, `PDFNetCArm64`). The SDK finds modules placed next to its own library, so no registration is needed.
* Anywhere else: extract the archive to any location and register that location with addResourceSearchPath, as in the following steps.

1. Download the module for your platform from its section on this page.
2. Extract the archive into your project, for example, into `modules/`. Keep the `Lib` folder intact. The module needs all of its files.
3. In your code, register the module location after initializing the SDK. For example, in Node.js:

{% tabs %}
{% tab title="JavaScript" %}
{% code lineNumbers="true" %}

```js
await PDFNet.addResourceSearchPath('./modules/<module_name>/Lib/');
```

{% endcode %}
{% endtab %}
{% endtabs %}

Replace `<module_name>` with a specific module name. For example, use `OCRModuleWindows`.

4. Optional: verify the module is found. For example, `OCRModule.isModuleAvailable()` returns true once the SDK can locate it.

If module calls fail with `Failed to find the Apryse SDK ... Module`, the SDK can't find the module. In such a case, check the path you registered in step 3.

### OCR Module Options

You will download and use one of our three OCR options when using OCR with the Apryse Server SDK. The three options are:

* Default OCR
* Alternative OCR
* IRIS OCR

Review our [OCR Overview article](/core/ocr/ocr.md) to learn about the specifics of each OCR option.

#### Default OCR Module

This is the default OCR module.

The module can be downloaded here:

{% @apryse-download-button/apryse-download-button id="OCR\_Module\_core\_windows" title="Download Windows OCR Module" showVersion="true" %}

{% @apryse-download-button/apryse-download-button id="OCR\_Module\_core\_linux" title="Download Linux OCR Module" showVersion="true" %}

{% @apryse-download-button/apryse-download-button id="OCR\_Module\_core\_mac" title="Download Mac OCR Module" showVersion="true" %}

The archive contains the module binary itself as well as some sample documents for testing. There is an `OCRTest` sample application available in the main SDK download package that should be fully functional once this module is extracted as described above.

#### Alternative OCR Module

This is the alternative OCR module. It is the same as the default OCR Module in SDK versions 11 and earlier.

The apryse-ocr pip package and the AlternativeOCRModule Maven packages currently install this OCR engine.

The module can be downloaded here:

{% @apryse-download-button/apryse-download-button id="Alternative\_OCR\_Module\_core\_windows" title="Download Windows Alternative OCR Module" showVersion="false" %}

{% @apryse-download-button/apryse-download-button id="Alternative\_OCR\_Module\_core\_linux" title="Download Linux Alternative OCR Module" showVersion="false" %}

{% @apryse-download-button/apryse-download-button id="Alternative\_OCR\_Module\_core\_mac" title="Download Mac Alternative OCR Module" showVersion="false" %}

The archive contains the module binary itself, as well as some sample documents for testing. There is an `OCRTest` sample application available in the main SDK download package that should be fully functional once this module is extracted as described above.

#### OCR by IRIS Module

This is an enhanced OCR module, licensed separately and powered by IRIS iDRS. [Contact sales](https://apryse.com/form/contact-sales) to purchase a license.

The module can be downloaded here:

{% @apryse-download-button/apryse-download-button id="IRIS\_OCR\_Module\_core\_windows" title="Download Windows OCR by IRIS Module" showVersion="true" %}

{% @apryse-download-button/apryse-download-button id="IRIS\_OCR\_Module\_core\_linux" title="Download Linux OCR by IRIS Module" showVersion="true" %}

{% @apryse-download-button/apryse-download-button id="IRIS\_OCR\_Module\_core\_mac" title="Download Mac OCR by IRIS Module" showVersion="true" %}

The archive contains the module binary itself, as well as some sample documents for testing. There is an `OCRTest` sample application available in the main SDK download package that should be fully functional once this module is extracted as described above.

### Handwriting ICR Module

This is the [handwriting ICR](/core/handwriting-icr/handwriting-icr.md) module.

The module can be downloaded here:

{% @apryse-download-button/apryse-download-button id="Handwriting\_ICR\_Module\_core\_windows" title="Download Windows Handwriting ICR Module" showVersion="true" %}

{% @apryse-download-button/apryse-download-button id="Handwriting\_ICR\_Module\_core\_linux" title="Download Linux Handwriting ICR Module" showVersion="true" %}

{% @apryse-download-button/apryse-download-button id="Handwriting\_ICR\_Module\_core\_mac" title="Download Mac Handwriting ICR Module" showVersion="true" %}

The archive contains the module binary itself as well as some sample documents for testing. There is a `HandwritingICRTest` sample application available in the main SDK download package that should be fully functional once this module is extracted as described above.

### CAD Module

The CAD module converts CAD file formats to PDF.

The module can be downloaded here:

{% @apryse-download-button/apryse-download-button id="CAD\_Conversion\_Module\_core\_windows" title="Download Windows CAD Module" showVersion="true" %}

{% @apryse-download-button/apryse-download-button id="CAD\_Conversion\_Module\_core\_linux" title="Download Linux CAD Module" showVersion="true" %}

The archive contains the module binary itself, as well as a sample document for testing. There is a `CAD2PDF` sample application available in the main SDK download package that should be fully functional once this module is extracted as described above.

### Advanced Imaging Module

The Advanced Imaging module adds support for additional image formats. It requires Apryse SDK 9.0 or later.

The module can be downloaded here:

{% @apryse-download-button/apryse-download-button id="Advanced\_Imaging\_Module\_core\_windows" title="Download Windows Imaging Module" showVersion="true" %}

{% @apryse-download-button/apryse-download-button id="Advanced\_Imaging\_Module\_core\_linux" title="Download Linux Imaging Module" showVersion="true" %}

{% @apryse-download-button/apryse-download-button id="Advanced\_Imaging\_Module\_core\_mac" title="Download Mac Imaging Module" showVersion="true" %}

The archive contains the module binary itself, as well as a sample document for testing. There is an `AdvancedImagingTest` sample application available in the main SDK download package that should be fully functional once this module is extracted as described above.

## **Supported advanced imaging formats**

The module supports the following file formats.

* AAI
* ARW
* CR2
* CRW
* CUR, ICO
* DCM
* DCR
* DDS
* HEIC, HEIF
* MRW
* NEF
* ORF
* PICT
* PFM
* PSB, PSD
* RAF

### Structured Output Module

New in Apryse SDK 9.2, the Structured Output module provides PDF to Word, Excel, PowerPoint and HTML conversion functionality.

The module can be downloaded here:

{% @apryse-download-button/apryse-download-button id="Structured\_Output\_Module\_core\_windows" title="Windows Structured Output Module" showVersion="false" %}

{% @apryse-download-button/apryse-download-button id="Structured\_Output\_Module\_core\_linux" title="Linux Structured Output Module" showVersion="false" %}

{% @apryse-download-button/apryse-download-button id="Structured\_Output\_Module\_64\_bit\_ARM\_core\_linux" title="Linux Structured Output 64-bit ARM Module" showVersion="false" %}

{% @apryse-download-button/apryse-download-button id="Structured\_Output\_Module\_core\_mac" title="Mac Structured Output Module" showVersion="false" %}

The archive contains the module binary itself. There are two sample applications called PDF2OfficeTest and PDF2HtmlTest available in the main SDK download package that should be fully functional once this module is extracted as described above.

### Data Extraction Module

The Data Extraction module provides tabular data, document structure, document classification, and form fields extraction functionality.

{% hint style="info" %}
**Trial mode page limit**

When in trial mode, output is limited to 100 pages, and a random evaluation page is inserted in the output content. Once licensed, there is no page limit and the demo page will no longer be inserted.
{% endhint %}

The module can be downloaded here:

{% @apryse-download-button/apryse-download-button id="Data\_Extraction\_Module\_core\_windows" title="Windows Data Extraction Module" showVersion="true" %}

{% @apryse-download-button/apryse-download-button id="Data\_Extraction\_Module\_core\_linux" title="Linux Data Extraction Module" showVersion="true" %}

The archive contains the module binaries themselves. There is a sample application called DataExtractionTest available in the main SDK download package that should be fully functional once this module is extracted as described above.

When using Maven on Windows or Linux, you can install the package via Maven with this command:

{% tabs %}
{% tab title="Shell" %}
{% code lineNumbers="true" %}

```sh
mvn dependency:get -DgroupId=com.pdftron -DartifactId=ARTIFACT_ID -Dversion=VERSION
```

{% endcode %}
{% endtab %}
{% endtabs %}

Alternatively, you can install the package by directly editing the dependencies section of your project's `pom.xml` like so:

{% tabs %}
{% tab title="XML" %}
{% code lineNumbers="true" %}

```xml
<dependency>
  <groupId>com.pdftron</groupId>
  <artifactId>ARTIFACT_ID</artifactId>
  <version>VERSION</version>
</dependency>
```

{% endcode %}
{% endtab %}
{% endtabs %}

In either case, replace `ARTIFACT_ID` with either `DataExtractionModuleWindows` or `DataExtractionModuleLinux` and replace `VERSION` with whatever version you want to install. Note that this installation must be performed after integrating the Apryse SDK into your Maven Project, as detailed [here](/core/get-started/languages/java.md).

### Barcode Module

The Barcode module enables detection, extraction, and decoding of barcodes contained in PDF documents.

The module can be downloaded here:

{% @apryse-download-button/apryse-download-button id="Barcode\_Module\_core\_windows" title="Windows Barcode Module" showVersion="true" %}

{% @apryse-download-button/apryse-download-button id="Barcode\_Module\_core\_linux" title="Linux Barcode Module" showVersion="true" %}

The archive contains the module binaries themselves. There is a sample application called BarcodeTest available in the main SDK download package that should be fully functional once this module is extracted as described above.

### PDF2Word Module

**Note:** The PDF2Word module has been replaced by the new [Structured Output module](#structured-output-module).

### PDF2HTML Reflow Paragraph Module

The PDF2HTML Reflow Paragraph module converts PDF documents to reflowing HTML.

The module can be downloaded here:

{% @apryse-download-button/apryse-download-button id="PDF2HTML\_Reflow\_Paragraph\_Module\_core\_windows" title="Download Windows PDF2HTML Module" showVersion="false" %}

{% @apryse-download-button/apryse-download-button id="PDF2HTML\_Reflow\_Paragraph\_Module\_core\_linux" title="Download Linux PDF2HTML Module" showVersion="false" %}

The archive contains the module binary itself.

### HTML2PDF Module

The HTML2PDF module converts HTML pages to PDF. Unlike the other modules, HTML2PDF has its own registration call: register the extracted Lib folder with `HTML2PDF.SetModulePath` instead of `addResourceSearchPath`.

The module can be downloaded here:

{% @apryse-download-button/apryse-download-button id="HTML2PDF\_Conversion\_Module\_core\_windows" title="Download Windows HTML2PDF Module" showVersion="true" %}

{% @apryse-download-button/apryse-download-button id="HTML2PDF\_Conversion\_Module\_64\_bit\_core\_linux" title="Download Linux HTML2PDF 64-bit Module" showVersion="true" %}

{% @apryse-download-button/apryse-download-button id="HTML2PDF\_Conversion\_Module\_64\_bit\_ARM\_core\_linux" title="Download Linux HTML2PDF 64-bit ARM Module" showVersion="true" %}

{% @apryse-download-button/apryse-download-button id="HTML2PDF\_Conversion\_Module\_core\_mac" title="Download Mac HTML2PDF Module" showVersion="true" %}

The archive contains the module binary itself. There is an `HTML2PDF` sample application available in the main SDK download package that should be fully functional once this module is extracted as described above. The Linux distribution used for HTML2PDF requires shared object dependencies that may not be installed by default. Here are instructions for detecting missing dependencies and their installation: [Linux Dependencies](/core/learn-more/platform-specifics/deployment/linux-dependencies.md) The HTML2PDF module can be used in an Azure App Service on the Linux consumption plan or in a custom container on a Premium Service Plan. For the Premium Service Plan using a custom container, please see these instructions for installing Linux dependencies in your custom container: [Azure Linux Consumption Plan](/core/learn-more/platform-specifics/deployment/azure-linux.md) The Chromium HTML2PDF module is supported on Windows but is not supported on the Azure App Service Windows platform. More information can be found here: [Windows Azure Services](/core/learn-more/platform-specifics/deployment/azure-windows.md)

### Print To PDF Module

The PrintToPDF module provides the Apryse SDK `PrintToPDFModule` class, a dedicated interface that operates on any printable file type, converting it directly to PDF. This module is available on Windows systems; it makes use of the `print` verb associated with a given file type and includes a high-performance (not XPS-based) Windows-certified virtual printer driver. Installation instructions are included within the PrintToPDF package (see Install.md).

The module can be downloaded here:

{% @apryse-download-button/apryse-download-button id="Print\_to\_PDF\_Module\_core\_windows" title="Download Windows PrintToPDF Module" showVersion="false" %}


---

# 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 current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.apryse.com/core/learn-more/modules.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
