CLI wrapper for Docling OCR engines
Project description
ocrguru
ocrguru is a lightweight, extensible CLI tool that wraps the powerful Docling OCR pipeline.
Process scanned PDFs or images in one command, choose your OCR engine, and export clean text in Markdown, JSON, or hOCR—all without the usual setup fuss.
📖 Table of Contents
- ✨ Features
- 🚀 Installation
- ⚡ Quick Start
- 🛠️ CLI Reference
- 🎯 Examples
- 📂 Project Structure
- 🤝 Contributing
- ✅ Testing
- 📜 License
✨ Features
-
Multiple Engines
- RapidOCR (default ONNX-based)
- EasyOCR (PyTorch-powered)
- Tesseract (Python wrapper or CLI)
-
Input Formats
.pdf,.png,.jpg/.jpeg,.tiff,.bmp
-
Output Formats
- Markdown (
.md) – human-friendly - JSON (
.json) – full coordinates & metadata - hOCR (
.html) – preserve layout & styling
- Markdown (
-
Zero-Config Defaults
- RapidOCR models auto-download from Hugging Face & cache locally
-
Cross-Platform
- Works on Windows, macOS, and Linux
-
Extensible Codebase
- Core logic lives in
core.py - CLI interface in
cli.py - Easily add new engines or pipeline options
- Core logic lives in
🚀 Installation
From PyPI:
pip install ocrguru
From your GitHub clone:
git clone https://github.com/yourusername/ocrguru.git
cd ocrguru
pip install .
Note:
doclingandhuggingface-hubwill install automatically.- For GPU-accelerated EasyOCR, install PyTorch with CUDA support:
pip install torch torchvision --extra-index-url https://download.pytorch.org/whl/cu118
⚡ Quick Start
Perform OCR on a PDF using the default RapidOCR engine, export to Markdown:
docling-ocr --engine rapidocr --input ./scanned_document.pdf --format md --output ./scanned_document.md
No extra flags needed!
🛠️ CLI Reference
Usage: docling-ocr [OPTIONS]
Options:
-e, --engine [easyocr|tesseract_py|tesseract_cli|rapidocr]
OCR engine (default: rapidocr)
-i, --input PATH Input file path (.pdf, image)
-f, --format [md|json|html] Output format (default: md)
-o, --output PATH Output file path
-h, --help Show this message and exit
🎯 Examples
1. EasyOCR on an Image
docling-ocr --engine easyocr --input invoice.jpg --format json --output invoice.json
2. Tesseract CLI on PDF → hOCR
docling-ocr --engine tesseract_cli --input contract.pdf --format html --output contract.hocr.html
3. Batch Processing (RapidOCR default)
for pdf in reports/*.pdf; do
out="${pdf%.pdf}.md"
docling-ocr --input "$pdf" --output "$out"
done
📂 Project Structure
ocrguru/
├── src/
│ └── ocrguru/
│ ├── cli.py # CLI entry point
│ └── core.py # OCR conversion logic
├── tests/ # pytest test suite
├── pyproject.toml # build & metadata
└── README.md # this file
🤝 Contributing
We welcome your ideas and pull requests!
- Fork the repo & create a feature branch
- Install dev dependencies:
pip install -e .[test]
- Write tests in
tests/and implement your feature insrc/ocrguru/ - Run the test suite:
pytest
- Open a pull request against
main
Please adhere to PEP 8 and write clear commit messages.
✅ Testing
We use pytest for automated testing. Coverage reporting is encouraged:
pytest --cov=ocrguru
Ensure new features include corresponding tests.
📜 License
Released under the MIT License. See LICENSE for full text.
❤️ Happy OCR’ing with ocrguru! ❤️
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file ocrguru-0.1.0.tar.gz.
File metadata
- Download URL: ocrguru-0.1.0.tar.gz
- Upload date:
- Size: 5.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f5aa03dfcd6a8407b292c4d90792fdd2b5232af98388440527a9019c34ccbeae
|
|
| MD5 |
e17977e787e52a272c94fee7f11fa37a
|
|
| BLAKE2b-256 |
9887ad77ff3f2539761225f337227dbf20f81455afdfa4e45f487b103730edc6
|
File details
Details for the file ocrguru-0.1.0-py3-none-any.whl.
File metadata
- Download URL: ocrguru-0.1.0-py3-none-any.whl
- Upload date:
- Size: 5.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c99ad04c8b84113b300dae010bb5a4912969ff8d13632f3fd303eb42e8d4bdb9
|
|
| MD5 |
3975eecb888c224e7e9fc95bac1d5f7a
|
|
| BLAKE2b-256 |
a4bcc73bad133ecf2f48eb652fbae923f8d5a53e535204d07ce492fb47e82f87
|