Start here

Quick start & APIInstallOnline OCRCode generator

Models & pipelines

PP-OCRv6 modelsLanguagesPP-StructureV3PaddleOCR-VL

Deploy & integrate

Serving & APIPaddleOCR.jsMCP server

Fix & upgrade

TroubleshootingMigrate from 2.xReleases

Evaluate

Our benchmarkCompare OCR toolsLicense & cost

Tools

Online OCRInstall command builderCode generatorError fixer2.x → 3.x converterLanguage code finder

Language

English简体中文日本語Try OCR online
Free tool

PaddleOCR code generator

Pick a pipeline, your input, language and hardware. You get the install commands and a script that uses only the parameters you need — with incompatible combinations corrected and explained. Every parameter name is checked against the PaddleOCR 3.7.0 source.

Checked against PaddleOCR 3.7.0Updated 3 min readFree tool

Generate your code#

PaddleOCR 3.7.0
Pipeline
Output as
Input
All 112 codes: language finder
PP-OCRv6 tier
medium: most accurate · small: ~3× faster · tiny: fastest, no Japanese
PaddleOCR-VL version
VLM backend
Hardware
Engine
Preprocessing
Recognise
Save results as
bashinstall
pythoncode

How to use the generated code#

  1. Run the install block once#

    It pins versions we've verified. If you already have PaddleOCR, check it's 3.x: python -c "import paddleocr; print(paddleocr.__version__)".

  2. Point the script at your file#

    Replace document.png, report.pdf or scans/ with your path. URLs work too.

  3. Read the notes under the code#

    They explain every automatic correction — for example why Japanese switches tiny to small, or why formula recognition turns off on ONNX Runtime.

Python, CLI, HTTP or JavaScript?#

TargetUse it whenLimits
PythonYou're building an app, batch job or notebook.Needs Python 3.9+ for document pipelines.
CLIYou want a one-off conversion or a shell script.Same options as Python; booleans are True/False.
HTTP clientOCR runs on a server and many clients call it.Server processes the first 10 PDF pages by default. See serving.
Browser JSYou want OCR inside a web page, with no server.Text OCR only; PP-OCRv6 small/tiny; PP-OCRv6 languages only.

FAQ#

Is the generated code tested?

The building blocks are: we ran the OCR and PP-StructureV3 paths (CPU, PaddlePaddle 3.2.0 and ONNX Runtime) on PaddleOCR 3.7.0 for this site's benchmark, and every parameter name is checked against the installed 3.7.0 package. PaddleOCR-VL and GPU snippets follow the official docs; we haven't run them on a GPU ourselves.

Why does the PP-StructureV3 code set PP-OCRv6 models?

Because PaddleOCR 3.7's PP-StructureV3 still defaults to PP-OCRv5 server text models, and in our test the PP-OCRv6 models fixed three misread lines (four wrong characters) and ran about 10% faster. Delete those two lines to get the stock behaviour.

Can I generate code for PaddleOCR 2.x?

No — 2.x has a different API. If you have 2.x code, the migration converter upgrades it.

Where do I find more parameters?

The quick start & API page lists every PaddleOCR() parameter with its effective default; the PP-StructureV3 and PaddleOCR-VL guides cover theirs.

Sources

  1. Parameter names: PaddleOCR 3.7.0 paddleocr/_pipelines/ocr.py, pp_structurev3.py, paddleocr_vl.py (signatures inspected in an installed 3.7.0 environment on 2026-10-27).
  2. HTTP API: official serving docs — POST /ocr (OCR.en.md) and POST /layout-parsing with result.layoutParsingResults[i].markdown.text (PP-StructureV3.en.md, PaddleOCR-VL.en.md).
  3. PaddleOCR.js options: @paddleocr/paddleocr-js README (0.4.2).
  4. Compatibility notes (tiny/Japanese, ONNX Runtime speed, PP-StructureV3 text models): our benchmark.
Updated October 27, 2026·How we verify facts