以编程方式使用文档

用于 RAG 的 PDF 解析: 转换为 Markdown 和 JSON,快速、本地化、无需 GPU

OpenDataLoader PDF 将 PDF 转换为 **LLM 就绪的 Markdown 和 JSON** 具有准确的阅读顺序、表格提取和边界框——全部在本地机器上运行。

为什么开发者选择 OpenDataLoader: - **确定性**—相同输入始终产生相同输出(无 LLM 幻觉) - **快速**—在 CPU 上每秒处理 100+ 页 - **私密**—100% 本地化,零数据传输 - **准确**—每个元素都有边界框,正确处理多列阅读顺序

概述

集成详情

本地可序列化JS 支持
OpenDataLoader PDFlangchain-opendataloader-pdf

加载器功能

文档延迟加载原生异步支持
OpenDataLoaderPDFLoader

OpenDataLoaderPDFLoader 组件使您能够将 PDF 解析为结构化的 Document 对象。

## 要求 - Python >= 3.10 - 系统上需要 Java 11 或更高版本 PATH

安装

pip install -U langchain-opendataloader-pdf

快速入门

from langchain_opendataloader_pdf import OpenDataLoaderPDFLoader

loader = OpenDataLoaderPDFLoader(
    file_path=["path/to/document.pdf", "path/to/folder"],
    format="text"
)
documents = loader.load()

for doc in documents:
    print(doc.metadata, doc.page_content[:80])

参数

参数类型默认值描述
file_path`str \List[str]`
formatstr"text"输出格式: "text", "markdown", "json", "html"
split_pagesboolTrue将每页拆分为单独的文档
quietboolFalse禁止控制台日志输出
passwordstrNone加密 PDF 的密码
use_struct_treeboolFalse使用 PDF 结构树(标记 PDF)
table_methodstr"default""default" (基于边界)或 "cluster" (边界 + 聚类)
reading_orderstr"xycut""xycut" or "off"
keep_line_breaksboolFalse保留原始换行符
image_outputstr"off""off", "embedded"
image_formatstr"png""png" or "jpeg"
content_safety_offList[str]None禁用安全过滤器: "hidden-text", "off-page", "tiny", "hidden-ocg", "all"
replace_invalid_charsstrNone无效字符的替换字符

使用示例

输出格式

# Plain text (default) - best for simple RAG
loader = OpenDataLoaderPDFLoader(file_path="doc.pdf", format="text")

# Markdown - preserves headings, lists, tables
loader = OpenDataLoaderPDFLoader(file_path="doc.pdf", format="markdown")

# JSON - structured data with bounding boxes
loader = OpenDataLoaderPDFLoader(file_path="doc.pdf", format="json")

# HTML - styled output
loader = OpenDataLoaderPDFLoader(file_path="doc.pdf", format="html")

标记 PDF 支持

For accessible PDFs with structure tags (common in government/legal documents):

loader = OpenDataLoaderPDFLoader(
    file_path="accessible_document.pdf",
    use_struct_tree=True  # Use native PDF structure
)

密码保护 PDF

loader = OpenDataLoaderPDFLoader(
    file_path="encrypted.pdf",
    password="secret123"
)

图像处理

# Images are excluded by default (image_output="off")
# This is optimal for text-based RAG pipelines

# Embed images as Base64 (for multimodal RAG)
loader = OpenDataLoaderPDFLoader(
    file_path="doc.pdf",
    format="markdown",
    image_output="embedded",
    image_format="jpeg"  # or "png"
)

文档元数据

每个返回的 Document 都包含元数据:

doc.metadata
# {'source': 'document.pdf', 'format': 'text', 'page': 1}

附加资源