The Apryse Fall 2026 Release is Here: Explore What's New

Home

All Blogs

Apryse OCR v12.2 vs. PaddleOCR: Up to 4.27x Faster With Up to 78% Less Memory

Published October 20, 2026

Updated October 20, 2026

Read time

5 min

email
linkedIn
twitter
link

Apryse OCR v12.2 vs. PaddleOCR: Up to 4.27x Faster With Up to 78% Less Memory

Sanity Image

Tabinda Khan

Senior Product Marketing Manager

Against stock PaddleOCR V6 Server, Apryse OCR v12.2 ran up to 4.27× faster and used up to 78% less peak memory in internal benchmarks. Here's what that means for your Node.js OCR workers.

Apryse OCR v12.2 is the OCR module for the Apryse Server SDK. In internal Apryse benchmarks, it completed OCR 2.59× faster than Apryse OCR v12.0 and up to 4.27× faster than stock PaddleOCR V6 Server, with up to 78% lower peak memory. Recognition accuracy is unchanged from v12.0. Results vary with document type, image size, language, hardware, and configuration.

Sanity Image

Faster OCR Means More Processing Capacity

Copied to clipboard

Two factors have the biggest impact on server-side OCR costs: how long each batch takes and how much memory each worker uses. Faster processing clears document queues sooner, while lower memory use lets you run more workers on the same server.

This matters most for high-volume intake. Bank statements, invoices, receipts, cheques, and passports often arrive as scans or image-based PDFs. Until OCR adds searchable text, tasks such as search, data extraction, and review have to wait.

With Apryse Server SDK, OCR runs on your own servers, so document content stays within your environment. The standard OCR module works without a GPU and is designed to handle challenging scans, including low-resolution pages, skewed text, and complex, multidirectional layouts. It recognizes printed and machine-generated text; handwriting is handled by the separate ICR module.

What Changed in v12.2: Benchmark Results

Copied to clipboard

Apryse OCR v12.2 completed the internal benchmark 2.59× faster than v12.0, reducing runtime by 61.4%. Against stock PaddleOCR V6 Server, v12.2 ran up to 4.27× faster and used up to 78% less peak memory. Apryse validated v12.2 performance and behavior across 18 complete regression runs.

Processing time (runtime in m:ss.sss)

Comparison

Baseline runtime

Apryse OCR v12.2 runtime

Speedup

Runtime reduction

Apryse OCR v12.0 vs. v12.2

3:53.823

1:30.155

2.59×

61.4%

Stock PaddleOCR V6 Server vs. Apryse OCR v12.2

26:00.060

6:05.676

4.27×

76.6%

Peak memory (tested on images of about 2 MB, 8 MB, and 33 MB)

Comparison

Reduction across tested image sizes

Average footprint

Apryse OCR v12.2 vs. v12.0

20.1–44.5% lower

1.61× lower

Apryse OCR v12.2 vs. stock PaddleOCR V6 Server

56.9–78.0% lower

3.58× lower

The largest memory reduction, 78.0% against PaddleOCR V6 Server, came on the medium (8 MB) images.

These figures come from internal Apryse benchmarks. Tested configuration: [Hardware, OS, CPU cores, SDK binding, OCR mode, image and page counts, languages, batch size, concurrency]. Results vary with document type, image size, language, hardware, runtime configuration, batch size, and workload. Treat them as a starting point and measure on your own documents.

Accuracy Carried Forward From v12.0

Copied to clipboard

Version 12.2 is a speed and memory release. Recognition accuracy is unchanged from v12.0, which replaced the v11 OCR engine with a deep-learning model.

Area

What v12 changed compared with v11

Recognition engine

Deep-learning neural network engine

Word recognition accuracy

About 16% better

Low-quality scans

Better results on scans under 300 DPI

Skewed pages and complex, multidirectional layouts

Better handling

Language coverage

Adds Chinese, Japanese, Korean, Portuguese, and more Latin-alphabet languages, for 80+ in total

Apryse validated v12.2 performance and behavior across 18 complete regression runs.

Upgrading a Node.js OCR Worker to Apryse OCR v12.2

Copied to clipboard

The upgrade takes two steps. Install the 12.2 Server SDK and OCR module packages in your worker image, then run your OCR calls inside a worker that initializes PDFNet once.

This feature requires the OCR add-on module, which is a separate download from the base Server SDK. See the modules documentation (docs.apryse.com/core/guides/info/modules) for download and installation instructions.

# Install the Server SDK and the OCR add-on module into your Linux worker image 
npm i @pdftron/pdfnet-node 
npm install @pdftron/ocr 

@pdftron/pdfnet-node installs the platform-specific native binary for the Server SDK. @pdftron/ocr adds the OCR module and installs through npm on Windows and Linux only. If your image is based on Alpine Linux, pass a target platform specifier during npm install, as described in the Node.js get-started guide.

Wrap your worker's entry point in PDFNet.runWithCleanup(main, licenseKey) and call PDFNet.shutdown() in .then(). That pattern initializes PDFNet once for the life of the worker and releases JavaScript-side references between documents. For the OCR call itself, start from the OCRTest sample in the main SDK download and the OCR workflow guide (docs.apryse.com/core/guides/ocr/workflow). Both cover converting scans to searchable PDFs and exporting OCR results as JSON or XML with text and position data.

The method runWithCleanup initializes PDFNet once and releases native references when the job ends. The availability check fails fast if the OCR module is missing from the worker image.

License keys are confidential. Do not commit them to public repositories. Use environment variables or a secrets manager to inject your key at runtime.

Running Apryse OCR v12.2 at Production Volume

Copied to clipboard

Size memory for your largest scans. Measure peak use on production images before increasing concurrency, then set container limits from those results.

Keep workers long-lived. Initialize PDFNet at startup and process documents in a loop to avoid repeated setup costs.

Give each worker its own document. Avoid sharing a PDFDoc across threads. If sharing is required, use the Lock and LockRead APIs to prevent crashes.

Set language per document. Route mixed scripts separately, since languages from different script groups generally cannot be combined except with English.

Use x64 nodes. The OCR module does not support ARM or 32-bit platforms, so pin OCR workers to x64 nodes.

What to Test After Upgrading

Copied to clipboard
  • Batch throughput. Compare the same production-based batch on your current version and v12.2 to see the real speed gain.
  • Peak memory per worker. Measure maximum memory across your image sizes before adding workers, so container limits remain safe.
  • Text accuracy. Check known values against verified pages, because faster OCR is not useful if it misses or misreads text.
  • Rotated non-Latin pages. Verify rotated Cyrillic, Devanagari, Arabic, and Korean pages, since automatic orientation detection is not supported for these scripts.

Get Started with Apryse OCR in Node.js

Copied to clipboard
  1. Install the Server SDK with npm i @pdftron/pdfnet-node and the OCR module with npm install @pdftron/ocr. Get your free trial key at dev.apryse.com before running the code.
  2. Follow the Node.js get-started guide for setup, then the OCR workflow guide.
  3. Node.js samples are available through @pdftron/pdfnet-node-samples, and the OCRTest sample ships in the main SDK download.

Ready to get started?

Sign up for a free trial to begin implementing the Apryse SDK in your application.