Tabula
Local desktop and command-line table extraction from text-based PDFs, output to CSV, TSV or JSON.
Operated by Manuel Aristarán
Opens the vendor's own site.
Jobs covered
Open a task to see exactly what the vendor documentation supports.
Extract
Browse all extract toolsextracting tables from text-based PDFs with Tabula's tabula-java engine and CLI, where the engine README documents page/area selection, guessed page regions, explicit column coordinates, stream and lattice extraction modes, password-protected inputs, batch directory conversion, and CSV/TSV/JSON output; the application uses the bundled engine for its graphical extraction workflow. The scope records text-based table extraction and the documented CLI options, notes that Tabula has no OCR and does not work on scanned/image-only PDFs, and makes no PDF editing, generation, conversion, redaction or accuracy guarantee
View
Browse all view toolsopening a text-based PDF in Tabula's local localhost graphical interface, selecting a page or table area, previewing the extracted table and exporting it; this is a selection/preview workflow for table extraction, not a general PDF reader, renderer or editor, and it does not provide PDF modification, OCR or format conversion
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 extracts tables from text-based PDFs. The desktop application opens a PDF in a local graphical interface served at 127.0.0.1, lets the user select a page area, preview the extracted table and export it; the bundled tabula-java command line covers batch and headless use with page/area selection, guessed regions, explicit column coordinates, password-protected inputs, stream and lattice modes, and CSV/TSV/JSON output.
The application release is 1.2.1, published 4 June 2018, and it bundles tabula-java 1.0.2; the separately maintained engine's latest release is 1.0.5, published 17 August 2021. The app is MIT-licensed and the engine is MIT-licensed, but the distributed app bundle also contains third-party components under their own licences, including Apache PDFBox 1.8.0 under Apache-2.0 and an AGPL-covered component.
It is a local text-table extractor, not a PDF editor, converter, viewer or OCR tool: upstream says it works only on text-based PDFs, not scans, and provides no PDF generation or modification. The site describes CSV and Excel-compatible output; the app UI exports CSV, and the engine CLI emits CSV, TSV or JSON.
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 only works on text-based PDFs, not scanned documents. If you cannot select text in the table in a PDF viewer, Tabula has no OCR step and will not extract the scan; a separate OCR pass would be needed, and the project itself warns about OCR error rates and advises against OCR for large files.
The desktop application is a volunteer-run project whose last release is v1.2.1 from 4 June 2018; the README says none of the original authors has time to work on it and the end-user application is unlikely to see updates. The extraction engine, tabula-java, is maintained separately: its last release is v1.0.5 from 17 August 2021 and it sees occasional bug-fix releases, but the app you download today still bundles engine 1.0.2, so do not present the app as including the latest engine.
Windows and Linux users need a Java Runtime Environment installed; the Mac app bundles Java; the bundled 2018 distribution README says Java 6 or Java 7 compatible, while the current engine source/target is Java 8, so do not assume a modern JRE claim beyond those upstream statements. The application bundle is MIT for its own code but not MIT-only: it includes Apache PDFBox 1.8.0 under Apache-2.0, an AGPL-licensed component and other third-party notices; review build/dist-LICENSE.txt and NOTICE.txt for the distributed bundle.
The GUI is a local interface served at 127.0.0.1 for selecting and previewing a table, not a general PDF reader or renderer, and the view job is limited to that selection/preview workflow. The engine CLI supports page/area selection, guess, columns, stream and lattice modes, passwords and CSV/TSV/JSON output.
The site markets CSV and Microsoft Excel, but the documented CLI formats are CSV/TSV/JSON and the app exports CSV; no native XLSX writer API is documented. Tabula does not edit, generate or convert PDFs, has no redaction, signing, OCR or general rendering capability, and makes no table-accuracy guarantee.
The Python, R and other bindings are community projects around tabula-java, not part of this application record.
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 for the Tabula application and tabula-java engine code: the app LICENSE.md is...
MIT for the Tabula application and tabula-java engine code: the app LICENSE.md is copyright 2012-2020 Manuel Aristarán under MIT, and the engine LICENSE is copyright 2014-2020 Manuel Aristarán under MIT. The distributed application is not MIT-only: build/dist-LICENSE.txt and NOTICE.txt record bundled third-party components with their own terms, including Apache PDFBox 1.8.0 under Apache-2.0, an AGPL-licensed component and other MIT/Apache notices.
The engine's current pom.xml references a newer PDFBox dependency than the one bundled in the 2018 app release. No paid tier or hosted service exists.
- Redaction
- No redaction feature
- Programmatic access
- Command line · Browser JavaScript
- Last availability check
- Responded in 367 ms 21 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.