You've read the benchmarks. You know PaddleOCR beats Tesseract. Now what?
Most people stop at the comparison table. Here's how to have OCR running before your coffee gets cold.
FREE · BETANo comparison table. Just the right tool for your situation.
Zero install. Hosted parsing API that combines structure-aware extraction (tables, reading order) with vision fallback for handwriting. Free while in beta — made by the CodeSOTA team.
curl -X POST https://hardparse.com/api/parse -F "file=@doc.pdf"# No install. Just curl.
curl -X POST https://hardparse.com/api/parse \
-F "file=@your-document.pdf"
# Returns structured JSON: text, tables, layout, reading order.
# Python one-liner:
# requests.post("https://hardparse.com/api/parse", files={"file": open("doc.pdf","rb")}).json(){
"text": "Invoice INV-2025-001...",
"tables": [
{
"rows": [
["Description", "Qty", "Price", "Total"],
["Web Development", "40", "$150.00", "$6,000.00"],
["UI/UX Design", "20", "$125.00", "$2,500.00"]
]
}
],
"pages": 1,
"reading_order": "preserved"
}It's in beta — no SLA yet, rate limits are generous but not unlimited. Good for prototypes, pilots, and moderate production volume. For 10k+ pages/day, talk to us or fall back to PaddleOCR.
99.6% accuracy on invoices. $0 cost. Runs on your machine. Apache 2.0 license.
pip install paddlepaddle paddleocr# pip install paddlepaddle paddleocr
from paddleocr import PaddleOCR
ocr = PaddleOCR(lang='en')
result = ocr.predict('your-image.png')
for item in result:
for text in item.get('rec_texts', []):
print(text)INVOICE
Invoice #: INV-2025-001
Date: December 16, 2025
Bill To:
John Smith
123 Main Street
Web Development Services
40
$150.00
$6,000.00First run downloads ~150MB of model files. It'll hang for a minute — that's normal. Subsequent runs are fast.
Best for handwriting and understanding context. Preserves table structure. Handles cursive reliably. Successor to GPT-4o.
pip install openai# pip install openai
import base64
from openai import OpenAI
client = OpenAI() # uses OPENAI_API_KEY env var
with open('your-image.png', 'rb') as f:
img = base64.b64encode(f.read()).decode()
response = client.chat.completions.create(
model="gpt-4o",
messages=[{"role": "user", "content": [
{"type": "text", "text": "Extract all text from this image."},
{"type": "image_url", "image_url": {
"url": f"data:image/png;base64,{img}"
}}
]}]
)
print(response.choices[0].message.content)INVOICE
Invoice #: INV-2025-001
Date: December 16, 2025
Bill To:
John Smith
123 Main Street
Description Qty Price Total
Web Development 40 $150.00 $6,000.00
UI/UX Design 20 $125.00 $2,500.00You need an OPENAI_API_KEY environment variable set. Get one at platform.openai.com. Costs ~$0.01 per image.
IBM's document understanding library. Structure-aware — preserves tables, headers, reading order. Best for PDFs and multi-page docs.
pip install docling# pip install docling
from docling.document_converter import DocumentConverter
converter = DocumentConverter()
result = converter.convert("your-document.pdf")
print(result.document.export_to_markdown())# Invoice INV-2025-001
**Date:** December 16, 2025
**Bill To:** John Smith, 123 Main Street
| Description | Qty | Price | Total |
|---|---|---|---|
| Web Development | 40 | $150.00 | $6,000.00 |
| UI/UX Design | 20 | $125.00 | $2,500.00 |
**Subtotal:** $8,980.00Docling downloads large model files on first run (~1GB). Install can take 5+ minutes due to dependencies. Works best with PDFs — for raw images, use PaddleOCR instead.
The classic. Been around since 2006. Lowest accuracy of the four, but easiest to install and fastest to run. Good enough for clean printed text.
# macOS: brew install tesseract
# Ubuntu: sudo apt install tesseract-ocr
pip install pytesseract pillow# pip install pytesseract pillow
# Also install: sudo apt install tesseract-ocr
import pytesseract
from PIL import Image
image = Image.open('your-image.png')
text = pytesseract.image_to_string(image)
print(text)INVOICE
Invoice #: INV-2025-001
Date: December 16, 2025
Bill To:
John Smith
123 Main Street
San Francisco, CA 94102
Description Qty Price Total
Web Development Services 40 $150.00 $6,000.00You need the system-level tesseract binary installed separately from the Python package. pip install pytesseract alone won't work.
Every model has blind spots. Here's what to watch for.
You just built a prototype. Here's the path to production.
import os, csv
for f in os.listdir('docs/'):
try:
result = ocr.predict(f'docs/{f}')
# save to output/
except Exception as e:
log.append([f, str(e)])We benchmark every new release within a week. Get the real numbers before the hype cycle.
No spam. Typically 2-3x per month.