Pull the tables out of any PDF into Excel, with free AI that runs on your laptop
Docling, the free document reader started at IBM Research, finds the tables in a PDF (even a scanned one) and rebuilds them as a spreadsheet. It runs on your own machine, so bank statements and invoices never get uploaded anywhere.
- Cell-by-cell accuracy figures on real and sample PDFs, so you know exactly what to spot-check
- A final project: your bank statement sorted into spending categories by a local AI, with totals in Excel
- Windows 10 or 11 with at least 8GB of RAM (it uses up to about 1.7GB while working)
- About 2.5GB of free disk space: 1.2GB for the app, about 500MB for its AI models, plus room for uv's download cache
- uv (the Python installer used across this site). If you did Turn any file into text your AI can read, you already have it
- A PDF with a table in it. No good one to hand? Use the sample PDFs: bank statement, price list and scanned stock sheet
- Optional, for the final project: Ollama 0.20.7 or newer with
gemma4:e2b, from Run a ChatGPT-style AI on your own laptop
Install Docling
One command installs Docling and the text-recognition engine it needs for scanned pages.
Docling was started by the AI for knowledge team at IBM Research Zurich and is now looked after by the Linux Foundation's LF AI & Data group. It's free and open source (MIT licence ↗). Its trick is that it doesn't just copy the text out of a PDF: small AI models look at each page, spot where the tables are, and work out which words sit in which row and column.
Open PowerShell. If you don't have uv yet, install it first, then close and reopen PowerShell:
Windows (only if you don't have uv)winget install --id astral-sh.uv -eNow install Docling. Copy the whole line:
Terminaluv tool install "docling[rapidocr]" --with "rapidocr<3.10" --python 3.12[rapidocr]adds the engine that reads scanned pages.--with "rapidocr<3.10"holds that engine at 3.9: version 3.10.0 breaks Docling's text recognition, and scans come out empty.--python 3.12tells uv which Python to use, and uv downloads it if you don't have it.It downloads about 350MB and takes 1.2GB on disk. The biggest part (about 480MB) is PyTorch, the library its AI models run on. Allow a few minutes on a normal connection. Then check it:
Terminaldocling --versionOutputDocling version: 2.135.0 Docling Core version: 2.101.1 Docling IBM Models version: 4.0.3 Docling Parse version: 7.22.2 Python: cpython-312 (3.12.13) Platform: Windows-11-10.0.26200-SP0
docling --version prints a version number.If it breaks'docling' is not recognised + 1 more
'docling' is not recognised
uv tool update-shell, close PowerShell, open a new one and try again.