opendataloader-pdf
A Python wrapper for the opendataloader-pdf Java CLI.
What it is and what it does
OpenDataLoader PDF is a Python wrapper around a Java-based PDF parser that extracts text, tables, images, and structural metadata from PDFs into multiple formats (Markdown, JSON with bounding boxes, HTML). It offers two modes: a deterministic local mode for standard digital PDFs, and a hybrid mode that routes complex pages (nested tables, scanned documents, formulas, charts) to an AI backend. The package also includes auto-tagging functionality to convert untagged PDFs into Tagged PDF format, which is the foundation for PDF accessibility compliance.
The tool is designed for two main workflows: building AI-ready datasets for RAG and LLM pipelines (with structured output and source citations via bounding boxes), and automating PDF accessibility remediation at scale. It requires Java 11+ as a system dependency but has no Python runtime dependencies, making installation straightforward. The core extraction and auto-tagging features are open-source under Apache-2.0; PDF/UA export and visual editing tools are enterprise add-ons.
Use it for:
- Extract structured Markdown and JSON from PDFs for RAG pipelines, with bounding boxes for source citation and retrieval.
- Auto-tag untagged PDFs into screen-reader-ready Tagged PDF format to meet accessibility regulations (EAA, ADA, Section 508) at scale.
- Parse complex or scanned PDFs (tables, formulas, charts, poor-quality scans) using hybrid mode for accurate structured output.
- Build document processing workflows that preserve reading order, heading hierarchy, and list structure for downstream NLP tasks.
- Extract tables and images with precise coordinates for document layout reconstruction or visual document analysis.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Extracts structured data (Markdown, JSON, HTML) from PDFs with bounding boxes and semantic tagging, and auto-tags untagged PDFs into Tagged PDF format for accessibility compliance.
Yes. Active, well-maintained project with strong benchmark performance (0.907 overall accuracy, 0.928 table extraction), no security vulnerabilities, and low install friction. Apache-2.0 license covers core features. Java 11+ system dependency is the only real prerequisite. Suitable for production RAG pipelines and accessibility automation workflows; hybrid mode adds cost (API calls) but handles complex documents well.
Install
opendataloader-pdf on PyPI
pip
pip install opendataloader-pdfuv
uv add opendataloader-pdfpoetry
poetry add opendataloader-pdfInstalling opendataloader-pdf
Before you install
Low friction: pure Python wheel with no runtime dependencies. Active maintenance (last commit 2026-08-13, 28406 stars) and recent releases. Requires Java 11+ as a system prerequisite, not a Python dependency.
License in practice
Apache-2.0 permissive license. Core extraction and auto-tagging are free and open-source; PDF/UA export and accessibility studio are enterprise add-ons.
Quickstart
pip install opendataloader-pdf
import opendataloader_pdf
opendataloader_pdf.convert(
input_path=["file.pdf"],
output_dir="output/",
format="markdown,json"
)
Requires Java 11+ installed and available on PATH before running Python code.
Verify before relying
- Whether the hybrid mode (AI-assisted extraction for complex tables and scanned PDFs) requires external API calls or runs locally.
- Performance characteristics and resource usage when processing large batches or high-volume PDF collections.
- Whether OCR in hybrid mode supports all 80+ claimed languages equally or has language-specific accuracy variations.
Package facts
| License | Apache-2.0 (permissive) |
| Python support | supports the current Python release (>=3.10) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | none |
| Maintenance | actively maintained — 31 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 184,207/month — #10,044 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: opendataloader_pdf-2.5.0-py3-none-any.whl
Tags
More Text Processing packages
A drop-in replacement for Python's standard…
permissive · top 100 on PyPI
pyparsingpyparsing provides a library for building text…
permissive · top 1,000 on PyPI
docutilsDocutils converts plaintext documentation in…
unclear · top 1,000 on PyPI
RapidFuzzRapidFuzz provides fast fuzzy string matching…
permissive · top 1,000 on PyPI
tinycss2tinycss2 parses CSS strings into token and…
permissive · top 1,000 on PyPI
llama-parseLlamaParse parses complex documents (PDFs,…
permissive · top 1,000 on PyPI
landingai-adeConverts PDFs and images into structured…
permissive · top 15,000 on PyPI
pymupdf4llmConverts PDFs and documents into clean,…
agpl · top 1,000 on PyPI
marker-pdfMarker converts PDFs, images, and other…
permissive · top 15,000 on PyPI
camelot-pyExtracts tables from PDFs into pandas…
permissive · top 5,000 on PyPI
pymupdf-layoutPyMuPDF Layout analyzes PDF structure and…
agpl · top 1,000 on PyPI
liteparseLiteParse provides Python bindings for fast,…
permissive · top 15,000 on PyPI
unstructured-inferenceRuns inference on layout-parsing and…
permissive · top 5,000 on PyPI
playa-pdfPlaya-pdf reads PDF files and exposes their…
permissive · top 15,000 on PyPI
pdftextExtracts plain text or structured blocks,…
permissive · top 15,000 on PyPI
unPDFExtracts individual characters and metadata…
permissive · top 15,000 on PyPI