Tabula
Desktop and command-line table extraction from text-based PDFs, output to CSV, TSV or JSON.
Jobs Extract
Since 2013
Where your files are processed
No server involved
The desktop application is a local service that reads and writes files on the machine. Two outbound calls exist and neither carries a document — a GitHub version check and a statistics ping, both disableable by flag.
The app is a local JRuby service that you open in a browser at localhost:8080, so files are read and parsed on your own machine; the PDF and the extracted data are never uploaded anywhere. The project documents two exceptions that are not file transfers: a version check against GitHub and a usage-stats ping, both of which can be disabled with -Dtabula.disable_version_check=1 and -Dtabula.disable_notifications=1.
What it does
Tabula finds tables in text-based PDFs and exports them as CSV, TSV or JSON. The desktop app runs a small web interface on localhost: you open a PDF, drag a rectangle around the table, preview the result and export it, with saved selection templates and a repeat-to-next-page control for recurring layouts. The bundled CLI covers headless and batch work, including whole-directory conversion, guessed page regions, explicit column coordinates, password-protected inputs and a lattice mode for ruled tables.
Best for: Anyone who needs the numbers out of a text-based PDF report and into a spreadsheet, especially journalists, researchers and analysts who want a free local tool with a graphical selection step rather than a script.
Worth knowing: Tabula extracts tables from text-based PDFs. It has no OCR of its own, so an image-only scan needs a separate OCR step before there is anything to extract, and the project advises against running OCR on large files. The extraction itself is done by tabula-java, the Java library and command line the application is built on; this record is about the desktop application, and the two are maintained separately. The application has not been released since June 2018, and the maintainers state that none of the original authors has time to work on it, while tabula-java receives occasional updates. We have not checked either repository’s commit history for dates, so no last-commit claim is made here.
Details, and where each comes from
Vendor statements, our own reading of their pages, and the things nobody has established yet, each answered separately. Where we have not confirmed something it says so rather than guessing, and a row nobody has established is greyed out.
- Versions covered
- Windows · macOS · Linux · Self-hosted
- Website
- tabula.technology
- Requires an account
- No
- Watermark on the free tier
- Not verified
- Maximum file size
- Not verified
- Batch processing
- Yes
- Data residency
- Self-hosted
- Open source
- Yes
- Self-hostable
- Yes
- Licence
- MIT
- Redaction
- No redaction feature
- Programmatic access
- Command line
- Last availability check
- Responded in 61 ms 16 October 2026
Checked automatically by our own runner, not reported by the vendor. 100% of our last 30 checks got a response.
What the redaction verdict rests on
From the vendor's own documentation, read 22 September 2026. Not tested by us.
What that does not establish: The vendor’s own site was read on 22 September 2026 and contains no mention of redaction, sanitisation, blackout or whiteout. Absence from a vendor’s own material is not proof that a feature does not exist — it may be undocumented, or on a page the reading did not reach — but for a NEGATIVE claim it is the strongest evidence available, and it is weaker than a positive quote. Recorded as such rather than presented as certainty.
What the vendor says
Claims are labelled rather than repeated as fact. Where we have checked something ourselves, it says so and shows when. Checked means we read the vendor's own page and it says what we recorded — not that we tested the behaviour, unless the note says we did.
-
“Tabula is, and always has been, a volunteer-run project. We've occasionally had funding for specific features, but it's never been a commercial undertaking. At the moment, none of the original authors have the time to actively work on the project. The end-user application, hosted on this repo, is unlikely to see updates from us in the near future.”
Checked by us — the source says this Read 21 September 2026
Confirmed verbatim: the paragraph appears unaltered, and the sentence after the claim's end is the one that matters most to anyone considering Tabula today — "tabula-java sees updates and occasional bug-fix releases from time to time", against the end-user application being "unlikely to see updates from us in the near future". So the project is drawing a line between a maintained library and an unmaintained application, and a reader who only reads the claim would not know which part they are about to depend on. This is the kind of maintenance-status honesty the index should record, and it is the second library in this batch to state its own limits clearly, after pdfplumber.
Standing: Re-read and matched byte for byte
Check it yourself: the source, the SHA-256, and how we checked
- From
- the text a browser renders
- SHA-256
- 7bd5afa0dc5997628629e896acc0741729bfd6046708c56d60f2275b00fe56db
How we checked: https://github.com/tabulapdf/tabula rendered in headless Chrome with scripts/render-page.mjs on 2026-09-21 (visible text 15119 bytes). sourceHash is the SHA-256 of the rendered text.
-
“Tabula only works on text-based PDFs, not scanned documents. If you can click-and-drag to select text in your table in a PDF viewer (even if the output is disorganized trash), then your PDF is text-based and Tabula should work.”
Checked by us — the source says this Read 21 September 2026
Confirmed verbatim: the two sentences appear unaltered. The claim is the same boundary Camelot draws in its FAQ, verified earlier in this batch, and Tabula is where the test comes from — Camelot's FAQ quotes this exact sentence. So the index now records both projects stating the text-based-versus-scanned limit, with one attributing the test to the other, which is a small and genuine piece of provenance between two tools a reader is likely to be choosing between. The parenthetical in the claim, "even if the output is disorganized trash", is the vendor's own and is kept as written.
Standing: Re-read and matched byte for byte
Check it yourself: the source, the SHA-256, and how we checked
- From
- the text a browser renders
- SHA-256
- 7bd5afa0dc5997628629e896acc0741729bfd6046708c56d60f2275b00fe56db
How we checked: Read from the same page and render as the claim above: https://github.com/tabulapdf/tabula rendered in headless Chrome on 2026-09-21, visible text 15119 bytes. sourceHash is the SHA-256 of the rendered text.
Each claim is quoted from the vendor's own pages. This section describes what we have and have not checked — it is not a judgement about anyone.
Sponsorship is distribution, not an endorsement or a promise of search rankings, AI citations, traffic, or sales. This listing is a free entry, compiled from published sources.
Related reading
- Which PDF tools keep your file on your machine — what we count as processing on your own device.
- Open source PDF tools, and what their licences require — what open source does and does not tell you.