Vibeleaderboard
Index / tool
Visit github.com
Category
Developer Tools
Rank
No. 1435Tools index
Pricing
Open Source
Type
TOOL
GitHub
63 stars
Date

About

LangChain integration for OpenDataLoader's PDF parser — feed structured PDFs into RAG pipelines.

What it does

This Python library turns local PDF extraction results into LangChain documents. It accepts individual files, file lists, or directories, then emits text, Markdown, HTML, or structured JSON. Pages can become separate documents with source, format, and page metadata.

Why it's ranked here

A strong fit when LangChain compatibility, local processing, and document structure matter together. It handles reading order, tables, tagged PDFs, page selection, sanitization, and several output forms behind one loader. Regression, integration, unit, and hybrid tests provide concrete engineering confidence.

What's good

The loader exposes unusually practical controls for ingestion work. It preserves tables, supports bounding boxes through JSON, excludes headers and footers by default, filters suspicious hidden content, and handles encrypted PDFs. Page-level output carries useful citation metadata, while batch and directory inputs reduce orchestration code.

Tradeoffs

Local extraction still requires Java alongside Python. Complex or scanned material may need a separately running hybrid backend, and fallback after backend failure is disabled by default. Images are excluded unless explicitly embedded or written externally. This package wraps the extraction engine rather than replacing its operational requirements.

How to use it well

Choose it for Python teams already building LangChain ingestion around reports, accessible documents, financial tables, or mixed PDF collections. Start with Markdown and page splitting, then enable structured JSON when citations need coordinates. Add hybrid processing only for difficult pages. It does not supply chunking, embeddings, vector storage, or retrieval.

Technical notes+

langchain_opendataloader_pdf/document_loaders.py defines OpenDataLoaderPDFLoader as a BaseLoader, normalizes one or many input paths, validates four formats, calls opendataloader_pdf.convert, uses a temporary output directory, and yields Document instances. Text, Markdown, and HTML pages are separated with _PAGE_SPLIT_SEPARATOR; JSON elements are grouped by their page number. langchain_opendataloader_pdf/__init__.py exports the loader. pyproject.toml uses Hatchling and declares langchain-core plus opendataloader-pdf. tests/test_document_loaders.py, tests/test_integration.py, tests/test_e2e_hybrid.py, and tests/test_regression.py cover argument forwarding, real extraction, hybrid behavior, snapshots, metadata, and sequential loader isolation.

Observed

License
Apache License 2.0
Primary language
Python
Packaging
PyPI package installed with pip; build backend is Hatchling
Interface
Python library implementing a LangChain BaseLoader
Runtime requirements
Python 3.10 or newer and Java 11 or newer on PATH
Platform declaration
Package metadata classifies the project as operating-system independent
Test structure
Repository includes unit, integration, hybrid end-to-end, and regression tests

Read from README.md, pyproject.toml, docs/plans/2026-04-02-pre-release-checklist-design.md, langchain_opendataloader_pdf/__init__.py, langchain_opendataloader_pdf/document_loaders.py, tests/conftest.py, tests/test_e2e_hybrid.py, tests/test_regression.py, tests/test_integration.py, tests/test_document_loaders.py, LICENSE, uv.lock.

What it can do

  • Parse structured PDF documents

    PDF fileStructured data

  • Extract text content from PDFs

    PDF filePlain text

  • Convert PDFs to LangChain documents

    PDF fileLangChain document objects

  • Feed PDF data into RAG pipelines

    Parsed PDF dataRAG-compatible document chunks

  • Integrate with LangChain workflows

    PDF documentsLangChain-compatible data format

Tags

langchainpdfragdata-loaderopendataloader

Tech Stack

Python

Comments (0)

No comments yet

Editorially curated, with community endorsements as a secondary signal. Corrections welcome.