Blog
OCR guides with code we have run and numbers we have measured.
Python OCR: pytesseract, EasyOCR, PaddleOCR and an API, with code that runs
OCR in Python with four options, each run on the same invoice: pytesseract, EasyOCR, PaddleOCR 3 and an OCR API. Code, real output and which to pick.
How to extract tables from PDF (with Python), including scanned PDFs
Extract tables from digital PDFs with pdfplumber, Camelot or PyMuPDF, and from scanned PDFs with OCR. Tested code, real output and the traps we hit.
Invoice data extraction: how to extract data from invoices reliably
Extract invoice number, dates, line items and totals from invoices with OCR and Python, then catch errors with arithmetic checks. Tested on 8 OCR models.
Handwritten text recognition: the best OCR for handwriting, tested
We ran a handwritten note through 10 OCR engines. The best read 97% to 99% of the words; Tesseract read 6%. Results, code and how to choose.
Best OCR model in 2026: benchmarks, open-source picks and how to choose
What OmniDocBench and olmOCR-Bench say about the best OCR models, the best open-source OCR, why the benchmarks disagree, and how to test on your own files.
How to improve OCR accuracy: what actually helped in our tests
We damaged an invoice in 6 ways and measured Tesseract before and after each fix. Resolution and deskew mattered most; binarisation did not. Code and checklist.