@NFTCPS: Guys, another mind-blowing open-source tool has appeared. Someone made a PDF parser that converts 100 pages to Markdown per second. Best part: 100% free, runs on CPU only—no GPU, no cloud, no API key needed. It's called OpenDataLoader...

X AI KOLs Timeline Tools

Summary

Open-source PDF parser OpenDataLoader converts 100 pages to Markdown per second, runs on CPU only, free and open-source, developed by the PDF Association and veraPDF team, ranking first in benchmarks.

Guys, another mind-blowing open-source tool has appeared. Someone made a PDF parser that converts 100 pages to Markdown per second. Best part: 100% free, runs on CPU only—no GPU, no cloud, no API key needed. It's called OpenDataLoader, sweeping all benchmarking leaderboards to claim the top spot. Here are some comparisons to give you an idea: - docling scores decent but is 15x slower - marker needs GPU and is 1000x slower - Pymupdf4llm is fast, but its table accuracy score is only 0.40 https://github.com/opendataloader-project/opendataloader-pdf… Even more impressive is its origin—the PDF Association and veraPDF team built it themselves, the very people who define the standards. 8.6k stars, Apache 2.0, zero commercial dependencies—who can resist that?
Original Article
View Cached Full Text

Cached at: 06/03/26, 11:56 PM

Brothers, yet another mind-blowing open-source tool has appeared. Someone built a PDF parser that converts 100 pages per second to Markdown — and the best part is it’s 100% free, runs on CPU only, no GPU, no cloud, not even an API key needed. It’s called OpenDataLoader, and it tops every benchmark leaderboard. Here’s a quick comparison:

  • docling scores well but is 15x slower
  • marker needs a GPU and is 1000x slower
  • Pymupdf4llm is fast, but its table score is only 0.40

https://github.com/opendataloader-project/opendataloader-pdf…

What’s even more impressive? It’s built by the PDF Association and the veraPDF team — the very people who define the standards. 8.6k stars, Apache 2.0, zero commercial dependencies. Who can resist?


opendataloader-project/opendataloader-pdf

Source: https://github.com/opendataloader-project/opendataloader-pdf

OpenDataLoader PDF

PDF Parser for AI-ready data. Automate PDF accessibility. Open-source.

License (https://github.com/opendataloader-project/opendataloader-pdf/blob/main/LICENSE) PyPI version (https://pypi.org/project/opendataloader-pdf/) npm version (https://www.npmjs.com/package/@opendataloader/pdf) Maven Central (https://search.maven.org/artifact/org.opendataloader/opendataloader-pdf-core) Java (https://github.com/opendataloader-project/opendataloader-pdf#java)

🔍 PDF parser for AI data extraction — Extract Markdown, JSON (with bounding boxes), and HTML from any PDF. #1 in benchmarks (0.907 overall). Deterministic local mode + AI hybrid mode for complex pages.

  • How accurate is it? — #1 in benchmarks: 0.907 overall, 0.928 table accuracy across 200 real-world PDFs including multi-column and scientific papers. Deterministic local mode + AI hybrid mode for complex pages (benchmarks)
  • Scanned PDFs and OCR? — Yes. Built-in OCR (80+ languages) in hybrid mode. Works with poor-quality scans at 300 DPI+ (hybrid mode)
  • Tables, formulas, images, charts? — Yes. Complex/borderless tables, LaTeX formulas, and AI-generated picture/chart descriptions all via hybrid mode (hybrid mode)
  • How do I use this for RAG? — pip install opendataloader-pdf, convert in 3 lines. Outputs structured Markdown for chunking, JSON with bounding boxes for source citations, and HTML. LangChain integration available. Python, Node.js, Java SDKs (quick start | LangChain)

♿ PDF accessibility automation — Auto-tag untagged PDFs into screen-reader-ready Tagged PDFs at scale. First open-source tool to generate Tagged PDFs end-to-end.

  • What’s the problem? — Accessibility regulations are now enforced worldwide. Manual PDF remediation costs $50–200 per document and doesn’t scale (regulations)
  • What’s free? — Layout analysis + auto-tagging (Apache 2.0). Untagged PDF in → Tagged PDF out. No proprietary SDK dependency (auto-tagging)
  • What about PDF/UA compliance? — Converting Tagged PDF to PDF/UA-1 or PDF/UA-2 is an enterprise add-on. Auto-tagging generates the Tagged PDF; PDF/UA export is the final step (pipeline)
  • Why trust this? — Built in collaboration with Dual Lab (https://duallab.com) (veraPDF (https://verapdf.org) developers) based on PDF Association (https://pdfa.org) specifications, best practice guides and expertise of the PDF Community (https://pdfa.org/community/). Auto-tagging follows the Well-Tagged PDF specification (https://pdfa.org/wtpdf/), validated with veraPDF (collaboration (https://opendataloader.org/docs/tagged-pdf-collaboration))

Get Started in 30 Seconds

Requires: Java 11+ and Python 3.10+ (Node.js (https://opendataloader.org/docs/quick-start-nodejs) | Java (https://opendataloader.org/docs/quick-start-java) also available)

Before you start: run java -version. If not found, install JDK 11+ from Adoptium (https://adoptium.net/).

pip install -U opendataloader-pdf
import opendataloader_pdf

# Batch all files in one call — each convert() spawns a JVM process, so repeated calls are slow
opendataloader_pdf.convert(
    input_path=["file1.pdf", "file2.pdf", "folder/"],
    output_dir="output/",
    format="markdown,json"
)

OpenDataLoader PDF layout analysis — headings, tables, images detected with bounding boxes

Annotated PDF output — each element (heading, paragraph, table, image) detected with bounding boxes and semantic type.

What Problems Does This Solve?

ProblemSolutionStatus
PDF structure lost during parsing — wrong reading order, broken tables, no element coordinatesDeterministic local PDF to Markdown/JSON with bounding boxes, XY-Cut++ reading orderShipped
Complex tables, scanned PDFs, formulas, charts need AI-level understandingHybrid mode routes complex pages to AI backend (#1 in benchmarks)Shipped
Manual PDF remediation cost — Accessibility regulations (EAA, ADA, Section 508) demand Tagged PDFs. Manual remediation costs $50–200/docAuto-tag untagged PDFs into Tagged PDFs (free, Apache 2.0). Foundation for PDF/UA workflows; full PDF/UA-1/2 export is an enterprise add-onAuto-tag: Shipped. PDF/UA export: Enterprise

Capability Matrix

CapabilitySupportedTier
Data extraction
Extract text with correct reading orderYesFree
Bounding boxes for every elementYesFree
Table extraction (simple borders)YesFree
Table extraction (complex/borderless)YesFree (Hybrid)
Heading hierarchy detectionYesFree
List detection (numbered, bulleted, nested)YesFree
Image extraction with coordinatesYesFree
AI chart/image descriptionYesFree (Hybrid)
OCR for scanned PDFsYesFree (Hybrid)
Formula extraction (LaTeX)YesFree (Hybrid)
Tagged PDF structure extractionYesFree
AI safety (prompt injection filtering)YesFree
Header/footer/watermark filteringYesFree
Accessibility
Auto-tagging → Tagged PDF for untagged PDFsYesFree (Apache 2.0)
PDF/UA-1, PDF/UA-2 export💼 AvailableEnterprise
Accessibility studio (visual editor)💼 AvailableEnterprise
Limitations
Process Word/Excel/PPTNo—
GPU requiredNo—

Extraction Benchmarks

opendataloader-pdf [hybrid] ranks #1 overall (0.907) across reading order, table, and heading extraction accuracy.

EngineOverallReading OrderTableHeadingSpeed (s/page)License
opendataloader [hybrid]0.9070.9340.9280.8210.463Apache-2.0
nutrient0.8850.9250.7080.8190.008Commercial
docling0.8820.8980.8870.8240.762MIT
marker0.8610.8900.8080.79653.932GPL-3.0
unstructured [hi_res]0.8410.9040.5880.7493.008Apache-2.0
edgeparse0.8370.8940.7170.7060.036Apache-2.0
opendataloader0.8310.9020.4890.7390.015Apache-2.0
mineru0.8310.8570.8730.7435.962AGPL-3.0
pymupdf4llm0.7320.8850.4010.4120.091AGPL-3.0
unstructured0.6860.8820.0000.3880.077Apache-2.0
markitdown0.5890.8440.2730.0000.114MIT
liteparse0.5760.8660.0000.0001.061Apache-2.0

Scores normalized to [0, 1]. Higher is better for accuracy; lower is better for speed. Bold = best. Full benchmark details (https://github.com/opendataloader-project/opendataloader-bench)

Benchmark (https://github.com/opendataloader-project/opendataloader-bench) | Quality Breakdown (https://github.com/opendataloader-project/opendataloader-bench)

Which Mode Should I Use?

Your DocumentModeInstallServer CommandClient Command
Standard digital PDFFast (default)pip install opendataloader-pdfNone neededopendataloader-pdf file1.pdf file2.pdf folder/
Complex or nested tablesHybridpip install "opendataloader-pdf[hybrid]"opendataloader-pdf-hybrid --port 5002opendataloader-pdf --hybrid docling-fast file1.pdf file2.pdf folder/
Scanned / image-based PDFHybrid + OCRpip install "opendataloader-pdf[hybrid]"opendataloader-pdf-hybrid --port 5002 --force-ocropendataloader-pdf --hybrid docling-fast file1.pdf file2.pdf folder/
Non-English scanned PDFHybrid + OCRpip install "opendataloader-pdf[hybrid]"opendataloader-pdf-hybrid --port 5002 --force-ocr --ocr-lang "ko,en"opendataloader-pdf --hybrid docling-fast file1.pdf file2.pdf folder/
Mathematical formulasHybrid + formulapip install "opendataloader-pdf[hybrid]"opendataloader-pdf-hybrid --enrich-formulaopendataloader-pdf --hybrid docling-fast --hybrid-mode full file1.pdf file2.pdf folder/
Charts needing descriptionHybrid + picturepip install "opendataloader-pdf[hybrid]"opendataloader-pdf-hybrid --enrich-picture-descriptionopendataloader-pdf --hybrid docling-fast --hybrid-mode full file1.pdf file2.pdf folder/
Untagged PDFs needing accessibilityAuto-tagging → Tagged PDFpip install opendataloader-pdfNone neededopendataloader-pdf --format tagged-pdf file1.pdf file2.pdf folder/

Quick Start

Python

pip install -U opendataloader-pdf
import opendataloader_pdf

# Batch all files in one call — each convert() spawns a JVM process, so repeated calls are slow
opendataloader_pdf.convert(
    input_path=["file1.pdf", "file2.pdf", "folder/"],
    output_dir="output/",
    format="markdown,json"
)

Node.js

npm install @opendataloader/pdf
import { convert } from '@opendataloader/pdf';

await convert(['file1.pdf', 'file2.pdf', 'folder/'], {
  outputDir: 'output/',
  format: 'markdown,json'
});

Java

<dependency>
    <groupId>org.opendataloader</groupId>
    <artifactId>opendataloader-pdf-core</artifactId>
    <version>1.0.0</version>
</dependency>

Python Quick Start (https://opendataloader.org/docs/quick-start-python) | Node.js Quick Start (https://opendataloader.org/docs/quick-start-nodejs) | Java Quick Start (https://opendataloader.org/docs/quick-start-java)

Hybrid Mode: #1 Accuracy for Complex PDFs

Hybrid mode combines fast local Java processing with AI backends. Simple pages stay local (0.02s); complex pages route to AI for +90% table accuracy.

pip install -U "opendataloader-pdf[hybrid]"

Terminal 1 — Start the backend server:

opendataloader-pdf-hybrid --port 5002

Terminal 2 — Process PDFs:

# Batch all files in one call — each invocation spawns a JVM process, so repeated calls are slow
opendataloader-pdf --hybrid docling-fast file1.pdf file2.pdf folder/

Python:

# Batch all files in one call — each convert() spawns a JVM process, so repeated calls are slow
opendataloader_pdf.convert(
    input_path=["file1.pdf", "file2.pdf", "folder/"],
    output_dir="output/",
    hybrid="docling-fast"
)

OCR for Scanned PDFs

Start the backend with --force-ocr for image-based PDFs with no selectable text:

opendataloader-pdf-hybrid --port 5002 --force-ocr

For non-English documents, specify the language:

opendataloader-pdf-hybrid --port 5002 --force-ocr --ocr-lang "ko,en"

Supported languages: en, ko, ja, ch_sim, ch_tra, de, fr, ar, and more.

Formula Extraction (LaTeX)

Extract mathematical formulas as LaTeX from scientific PDFs:

# Server: enable formula enrichment
opendataloader-pdf-hybrid --enrich-formula

# Batch all files in one call — each invocation spawns a JVM process, so repeated calls are slow
opendataloader-pdf --hybrid docling-fast --hybrid-mode full file1.pdf file2.pdf folder/

Output in JSON:

{
  "type": "formula",
  "page number": 1,
  "bounding box": [226.2, 144.7, 377.1, 168.7],
  "content": "\\frac{f(x+h) - f(x)}{h}"
}

Note: Formula and picture description enrichments require --hybrid-mode full on the client side.

Chart & Image Description

Generate AI descriptions for charts and images — useful for RAG search and accessibility alt text:

# Server
opendataloader-pdf-hybrid --enrich-picture-description

# Batch all files in one call — each invocation spawns a JVM process, so repeated calls are slow
opendataloader-pdf --hybrid docling-fast --hybrid-mode full file1.pdf file2.pdf folder/

Output in JSON:

{
  "type": "picture",
  "page number": 1,
  "bounding box": [72.0, 400.0, 540.0, 650.0],
  "description": "A bar chart showing waste generation by region from 2016 to 2030..."
}

Uses SmolVLM (256M), a lightweight vision model. Custom prompts supported via --picture-description-prompt.

Hancom Data Loader Integration — Coming Soon

Enterprise-grade AI document analysis via Hancom Data Loader (https://sdk.hancom.com/en/services/1?utm_source=github&utm_medium=readme&utm_campaign=opendataloader-pdf) — customer-customized models trained on your domain-specific documents. 30+ element types (tables, charts, formulas, captions, footnotes, etc.), VLM-based image/chart understanding, complex table extraction (merged cells, nested tables), SLA-backed OCR for scanned documents, and native HWP/HWPX support. Supports PDF, DOCX, XLSX, PPTX, HWP, PNG, JPG. Live demo (https://livedemo.sdk.hancom.com/en/dataloader?utm_source=github&utm_medium=readme&utm_campaign=opendataloader-pdf)

Hybrid Mode Guide (https://opendataloader.org/docs/hybrid-mode)

Output Formats

FormatUse Case
JSONStructured data with bounding boxes, semantic types
MarkdownClean text for LLM context, RAG chunks
HTMLWeb display with styling
Annotated PDFVisual debugging — see detected structures (sample (https://opendataloader.org/demo/samples/01030000000000))
TextPlain text extraction

Combine formats: format="json,markdown"

JSON Output Example

{
  "type": "heading",
  "id": 42,
  "level": "Title",
  "page number": 1,
  "bounding box": [72.0, 700.0, 540.0, 730.0],
  "heading level": 1,
  "font": "Helvetica-Bold",
  "font size": 24.0,
  "text color": "[0.0]",
  "content": "Introduction"
}
FieldDescription
typeElement type: heading, paragraph, table, list, image, caption, formula
idUnique identifier for cross-referencing
page number1-indexed page reference
bounding box[left, bottom, right, top] in PDF points (72pt = 1 inch)
heading levelHeading depth (1+)
contentExtracted text

Full JSON Schema (https://opendataloader.org/docs/reference/json-schema)

Advanced Features

Tagged PDF Support

When a PDF has structure tags, OpenDataLoader extracts the exact layout the author intended — no guessing, no heuristics. Headings, lists, tables, and reading order are preserved from the source.

Output quality depends on tag quality. Not all tagged PDFs are well-tagged. For PDFs with sparse or incorrect tags, the default heuristic mode or --hybrid docling-fast often produces better results.

# Batch all files in one call — each convert() spawns a JVM process, so repeated calls are slow
opendataloader_pdf.convert(
    input_path=["file1.pdf", "file2.pdf", "folder/"],
    output_dir="output/",
    use_struct_tree=True  # Use native PDF structure tags
)

Most PDF parsers ignore structure tags entirely. Learn more (https://opendataloader.org/docs/tagged-pdf)

AI Safety: Prompt Injection Protection

PDFs can contain hidden prompt injection attacks. OpenDataLoader automatically filters:

  • Hidden text (transparent, zero-size fonts)
  • Off-page content
  • Suspicious invisible layers

To sanitize sensitive data (emails, URLs, phone numbers → placeholders), enable it explicitly:

# Batch all files in one call — each invocation spawns a JVM process, so repeated calls are slow
opendataloader-pdf file1.pdf file2.pdf folder/ --sanitize

AI Safety Guide (https://opendataloader.org/docs/ai-safety)

LangChain Integration

pip install -U langchain-opendataloader-pdf
from langchain_opendataloader_pdf import OpenDataLoaderPDFLoader

loader = OpenDataLoaderPDFLoader(
    file_path=["file1.pdf", "file2.pdf", "folder/"],
    output_dir="output/",
    mode="hybrid",
    model="docling-fast"
)

LangChain Quick Start (https://opendataloader.org/docs/langchain)

Memory & Performance

OpenDataLoader is designed for efficient resource usage.

MetricValue
Memory (JVM)~256 MB baseline
Memory (hybrid)+1–2 GB on server
Speed (fast mode)0.015 s/page
Speed (hybrid)0.46 s/page
Max file sizeNo hard limit (tested on 10,000 page PDF)

Roadmap

  • Python, Node.js, Java SDKs
  • Hybrid mode with AI backends
  • OCR for scanned PDFs
  • Formula extraction (LaTeX)
  • Chart/image description
  • Auto-tagging → Tagged PDF
  • PDF/UA-1, PDF/UA-2 export (Enterprise)
  • Hancom Data Loader integration
  • Cloud API (Enterprise)

FAQ

Q: Why is the first call slow?
A: The first call starts a JVM process. Subsequent calls reuse it. For batch processing, always pass multiple files in a single call.

Q: Can I use GPU?
A: Not needed. Fast mode is CPU-only. Hybrid mode uses a lightweight AI backend that runs on CPU (though GPU speeds up the backend if available).

Q: Is it really free?
A: Yes. Apache 2.0 license. No hidden costs. The hybrid mode uses open-source AI models.

Q: How does it compare to commercial tools?
A: Outperforms most commercial tools in accuracy, and is free. Commercial tools may offer better speed or additional enterprise features.

Contributing

We welcome contributions! See the contribution guide (https://github.com/opendataloader-project/opendataloader-pdf/blob/main/CONTRIBUTING.md)

License

Apache 2.0 (https://github.com/opendataloader-project/opendataloader-pdf/blob/main/LICENSE)

Acknowledgments

Built with ❤️ by the PDF community. Special thanks to:

  • PDF Association (https://pdfa.org) for specifications and guidance
  • Dual Lab (https://duallab.com) for veraPDF development
  • Hancom (https://sdk.hancom.com) for AI collaboration
  • All contributors and early adopters

Star History

Star History Chart

Similar Articles

@AIExplorerTim: Someone just released a tool that converts PDFs into clean, structured Markdown at speeds up to 100 pages/second. No GPU required. No API costs. No messy parsing. Just raw, usable data. It handles with ease: • Tables → Perfectly ex…

X AI KOLs Timeline

OpenDataLoader is an open-source tool that converts PDFs into structured Markdown and JSON, supporting local processing speeds of up to 100 pages/second without requiring a GPU or incurring API costs, designed specifically for RAG pipelines and PDF accessibility automation.

@CoderDaMing: China has open-sourced a peanut-sized OCR that can parse an entire 100-page PDF in one go. It's called 'Unlimited-OCR'. Only 3B parameters. Runs locally. Other OCR tools cut documents page by page, easily losing context. This one reads the entire document at once. → Single 'long-range' parse (32K context window...

X AI KOLs Timeline

China has open-sourced the OCR model Unlimited-OCR with only 3B parameters, which can parse an entire 100-page PDF in one go, supports local execution, achieves 93% accuracy, and is completely free and open-source.

@rwayne: Absolutely impressive for building local knowledge bases with academic papers—the bottleneck has always been cleanly converting PDFs to Markdown. OpenDataLoader-PDF achieves a 0.907 accuracy rate, ranking first on the open-source PDF parsing leaderboard, all under Apache 2.0. Key metrics from a test set of 200 real papers: Overall score 0…

X AI KOLs Timeline

OpenDataLoader-PDF is an open-source PDF parsing tool that achieves a high accuracy rate of 0.907 in tests with real academic papers. It efficiently converts complex PDF documents (including tables, formulas, and scanned images) into Markdown and JSON, making it ideal for local knowledge bases and RAG applications.

@0xQiYan: Brothers, have you ever encountered situations where various format conversions require a membership, and still worry about not having one? Discovered an open-source project for format conversion that Microsoft and Google couldn't achieve, but a philosophy professor managed to do in his spare time. Pandoc—the document conversion artifact, one command, a few seconds, over 50 formats freely converted. Word to PDF, ...

X AI KOLs Timeline

Introducing the open-source document conversion tool Pandoc, developed in spare time by philosophy professor John MacFarlane, supporting conversion between over 50 formats, free, open source, and fully local.

@CycleDecoded: Freeloaders Rejoice! Who's still foolishly paying for memberships on those shady PDF websites? Just stumbled upon an insane project on GitHub that's about to blow up that business model. It's called PDFCraft, a purely open-source beast. It packs over 90 professional PDF tools directly into a web page. The craziest part is it runs entirely locally...

X AI KOLs Timeline

PDFCraft is an open-source PDF toolkit offering over 90 features, running entirely locally in the browser without uploading any files, ensuring data security and free use.