This is an early release preview. You may encounter bugs.
OpenDataLoader PDF logo
Unclaimed

Tool data-wrangling

OpenDataLoader PDF

Extract Markdown, JSON (with bounding boxes), and HTML from any PDF.

A 87/100 GitHub score ? This grade is derived from GitHub signals, not user votes. Open for the full breakdown.
No votes yet

01 / About

What OpenDataLoader PDF is.

OpenDataLoader PDF is a PDF parser that turns digital, scanned, and tagged PDFs into structured output for LLM and retrieval pipelines, and that can also generate accessibility structure tags for PDFs that lack them. It outputs Markdown for chunking, JSON with a bounding box and semantic type for every element (for source citations), HTML, plain text, an annotated PDF for visual debugging, and Tagged PDF.

The core is a deterministic Java engine (Java 11+) exposed through Python, Node.js, and Java SDKs and a CLI. Local mode performs layout analysis, XY-Cut++ reading order, heading and list detection, simple table extraction, image extraction with coordinates, header/footer/watermark filtering, and prompt-injection filtering of hidden, off-page, or invisible text. When a PDF carries structure tags, usestructtree reads reading order and structure from the tags instead of heuristics. Each convert() call starts a JVM, so batching many files per call is the intended usage pattern.

Hybrid mode adds a separate backend server: simple pages stay local, and complex pages route to an AI backend (docling-fast) for borderless and nested tables, OCR in 80+ languages for scanned documents, LaTeX formula extraction, and picture and chart descriptions generated with SmolVLM. A langchain-opendataloader-pdf package provides a LangChain document loader.

In the project's own benchmark over 200 real-world PDFs, hybrid mode scored highest overall:

Engine Overall Reading order Table Heading Speed (s/page)
opendataloader (hybrid) 0.907 0.934 0.928 0.821 0.463
nutrient 0.885 0.925 0.708 0.819 0.008
Docling 0.882 0.898 0.887 0.824 0.762
marker 0.861 0.890 0.808 0.796 53.932
opendataloader (local) 0.831 0.902 0.489 0.739 0.015
mineru 0.831 0.857 0.873 0.743 5.962

On the accessibility side, the auto-tagging step writes structure tags (headings, paragraphs, lists, tables, reading order) into untagged PDFs following the PDF Association's Well-Tagged PDF specification, developed with Dual Lab (the veraPDF developers) and validated with veraPDF. Converting a Tagged PDF to PDF/UA-1 or PDF/UA-2 and the visual accessibility studio are enterprise add-ons. Word, Excel, and PowerPoint inputs are not supported, and no GPU is required.

Features

  • Output formats: Markdown, JSON with bounding boxes, HTML, plain text, annotated PDF, and Tagged PDF, combinable in one run
  • Deterministic local mode: reading order, heading hierarchy, lists, tables, and image coordinates without a GPU
  • Hybrid mode: complex pages routed to an AI backend for borderless tables, OCR, formulas, and chart descriptions
  • Tagged PDF input: --use-struct-tree reads the author's structure tags instead of guessing layout
  • Prompt-injection filtering: hidden, off-page, and invisible text removed by default, with optional --sanitize for emails, URLs, and phone numbers
  • Auto-tagging: untagged PDF in, screen-reader-ready Tagged PDF out, validated with veraPDF
  • Three SDKs and a CLI: Python, Node.js, and Java packages plus command-line batch processing
  • LangChain loader: OpenDataLoaderPDFLoader for document ingestion
  • Image handling: images off, embedded as Base64, or written externally, in PNG or JPEG
  • Enterprise add-ons: PDF/UA-1 and PDF/UA-2 export and an accessibility studio

02 / Discussion CREDIBILITY-GATED

Discussion

Reading is open to everyone. Posting and voting need a verified identity or a GitHub grade of B or higher.

  • No discussions yet.

03 / Build

Build with OpenDataLoader PDF.

Browse the catalogue for frameworks, tools, and harnesses, each scored on real GitHub credibility.

Get OpenDataLoader PDF →

Browse the catalogue