Skip to content
dialegein

Tabula

Local desktop and command-line table extraction from text-based PDFs, output to CSV, TSV or JSON.

Jobs Extract View

Since 2013

Operated by Manuel Aristarán

Visit Tabula

Opens the vendor's own site.

Jobs covered

Open a task to see exactly what the vendor documentation supports.

Extract Browse all extract tools

extracting 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 tools

opening 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.

https://tabula.technology

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.

    What this hash proves, and what it does not

  • “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.

    What this hash proves, and what it does not

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.

Visit Tabula Report a problem

Related reading

How this record was put together

Editorial review.
No editor has signed this record off. That is not the same as nothing having been checked, and the lines below say what has.
Source reading.
2 claims taken from the vendor's own pages, read between 21 September 2026 and 21 September 2026.
Website availability.
The vendor's site was last checked on 21 October 2026.
Behaviour testing.
We ran this ourselves. The file handling was watched directly.

Sources: tabula.technology (live, check date 2026-09-16); github.com/tabulapdf/tabula README, LICENSE.md, releases and commit history; github.com/tabulapdf/tabula-java README, LICENSE, releases and commit history; GitHub REST API metadata for both repositories; source.opennews.org introducing-tabula (3 April 2013); NuGet/GitHub release tag data.