opendataloader-project/opendataloader-pdf

Data

Extracts structured Markdown, JSON with bounding boxes, and tagged PDF from PDFs, for RAG pipelines and accessibility remediation.

29,990
2,859
Java
Apache-2.0
1 year old

Worth a look if your pipeline chokes on PDFs: this is a deterministic local parser that also exposes a hybrid mode for the pages that defeat heuristics. Two caveats: the AI-heavy capabilities need an extra backend install, and accessibility splits into a free auto-tagging core and a paid PDF/UA export.

The problem

You have a folder of PDFs — reports, papers, bank statements, scanned forms — and you want clean text, tables and reading order for a RAG index. Copy-paste mangles columns, naive extractors scramble multi-column layouts, and every bad page becomes a manual fix. With this tool you point convert() at files or a directory and get Markdown, JSON or HTML out, with element coordinates and heading/list/table structure reconstructed. For accessibility, an untagged PDF that a screen reader reads in document order becomes a Tagged PDF with a structure tree that remediation work can build on.

What's different

The mechanism is local layout analysis built on XY-Cut++ reading-order logic, producing deterministic output with bounding boxes for every element, plus optional respect for an existing PDF structure tree. Determinism matters in a data pipeline: the same input gives the same output, so diffs and regression tests are meaningful. When heuristics aren't enough — complex borderless tables, scanned pages needing OCR, formulas, chart descriptions — hybrid mode routes those pages to an AI backend, installed via the [hybrid] extra. The trade-off is the usual one: local mode is fast and predictable but struggles with exactly the hard pages; hybrid mode improves those pages at the cost of a second service, an install step, and less deterministic output.

Tagged PDF handling is a distinct behavior: when tags exist and you enable use_struct_tree, the parser takes the author's structure instead of guessing. The README says this backfires on poorly tagged files and that use_struct_tree overrides hybrid. On accessibility, the free tier stops at auto-tagging to Tagged PDF; PDF/UA export and the accessibility studio are enterprise add-ons.

Who should try it

Good fit: an engineer building document ingestion who can accept a Java dependency and wants coordinate-bearing JSON with Python/Node wrappers, or an accessibility team needing a first-pass structure tree on untagged PDFs. Poor fit: someone who only needs simple text dumps, or a project requiring an in-process C++ library — one Hacker News commenter asked for C++-callable table extraction and found the Java/Python stack a blocker. If you need PDF/UA output entirely under a permissive license, look elsewhere too.

A firsthand report: on 2025-09-23 a commenter said extracted JSON from bank statements looked usable in one shot compared with other tools tried, while noting it needed deeper checking. One document type and version, not a benchmark.

Requirements and limitations

Java 11+ and Python 3.10+ for the pip path; Node.js and Java quick-start paths also exist. Because each convert() spawns a JVM, the README warns repeated single-file calls are slow — batch inputs in one call. Hybrid, OCR, formula and chart features require the extra install and a running backend; OCR quality varies by engine and language.

The README's benchmark numbers (0.907 overall, 0.928 table accuracy, 0.015s/page local) are the project's own and unverified here; treat them as a hypothesis for your documents. License moved from MPL 2.0 to Apache 2.0 at version 2.0, with pre-2.0 versions staying under MPL. Read the tagged-PDF guidance before relying on structure tags.

HotRepo's take

HotRepo recorded 29,983 stars on 2026-10-24 and 29,988 on 2026-10-25, appearing on the daily board on 2 days across that two-day sample. That's a snapshot, not a trend: persistence can't be judged from two dated observations. Verify first whether use_struct_tree or hybrid gives better output on your actual tagged-PDF corpus.

Hacker News

OpenDataLoader-PDF: An open source tool for structured PDF parsing
▲ 109 · 28 comments · September 23, 2025

Written by AI from the project's README, updated October 25, 2026. The project's own docs are the source of truth.