pdf_oxide极速PDF解析库:20语言绑定与零ML依赖的文档提取方案

pdf_oxide极速PDF解析库:20语言绑定与零ML依赖的文档提取方案

资源概览

pdf_oxide是由Yury Fedoseev开发的极速PDF解析工具库,采用Rust核心引擎编写,支持20种编程语言绑定。该项目采用MIT/Apache-2.0双许可证授权,可自由用于商业和开源项目。最新版本为v0.3.78(2026年9月发布),在3830个真实PDF文档测试中达到100%通过率。

核心特点:平均处理速度0.8ms/文档,比PyMuPDF快5倍,比pypdf快15倍;支持文本提取、图片提取、Markdown转换、PDF创建与编辑;无机器学习依赖,纯CPU推理;提供CLI命令行工具、REST API和MCP Server。

授权协议:MIT/Apache-2.0双许可,可商用无限制。
适用平台:Windows/macOS/Linux,支持x86_64和ARM架构。
版本信息:v0.3.78(2026年9月)

核心功能

文本与结构化提取

pdf_oxide能够精确提取PDF中的文本内容,同时保留原始布局结构。对于包含表格的文档,能够自动识别表格结构并输出结构化数据。公式和特殊字符也能被正确识别和转换。

图片提取与转换

支持从PDF中提取嵌入的图片资源,包括JPEG、PNG等格式。提取的图片可以直接保存为独立文件,也可在Markdown输出中通过引用方式保留。

Markdown转换

内置了强大的Markdown转换引擎,能够将PDF内容转换为格式化的Markdown文本。转换过程保留了标题层级、段落结构和列表格式,适合直接用于LLM输入或文档管理。

多语言支持

除了基础的文本提取,pdf_oxide还支持OCR功能。对于扫描版PDF,可以集成Tesseract等OCR引擎进行文字识别。

适用场景

场景说明推荐用法
RAG数据预处理将PDF文档转换为LLM可读格式CLI批量转换
文档管理自动化自动提取PDF元数据和正文Python API
科研论文解析提取公式、表格和参考文献Rust bindings
法律文档处理高精度文本提取保留排版CLI + OCR

下载与安装

官方下载:https://github.com/yfedoseev/pdf_oxide/releases/tag/v0.3.78


Rust安装

cargo add pdf_oxide

Python安装

pip install pdf_oxide

CLI安装

# Homebrew (macOS/Linux)
brew install yfedoseev/tap/pdf-oxide

# Scoop (Windows)
scoop bucket add pdf-oxide https://github.com/yfedoseev/scoop-pdf-oxide
scoop install pdf-oxide

# Shell installer
curl -fsSL https://raw.githubusercontent.com/yfedoseev/pdf_oxide/main/install.sh | sh

MCP Server安装

cargo install pdf_oxide_mcp

快速上手

Python使用示例

from pdf_oxide import PdfOxide

parser = PdfOxide()
result = parser.extract_text("document.pdf")
print(result.text)

md_result = parser.to_markdown("document.pdf")
print(md_result.markdown)

tables = parser.extract_tables("document.pdf")
for table in tables:
    print(table.to_csv())

CLI使用示例

# 转换PDF为Markdown
pdf-oxide convert input.pdf output.md

# 批量转换目录
pdf-oxide batch /path/to/pdfs /path/to/output --format markdown

# 查看文档信息
pdf-oxide info document.pdf

Rust使用示例

use pdf_oxide::PdfOxide;

fn main() -> Result<(), Box> {
    let parser = PdfOxide::new();
    let doc = parser.load("document.pdf")?;
    let text = doc.extract_text()?;
    println!("{}", text);
    let md = doc.to_markdown()?;
    println!("{}", md);
    Ok(())
}

同类资源对比

功能pdf_oxidePyMuPDFpypdfmarkitdown
平均速度0.8ms4.6ms12.1ms108.8ms
通过率100%99.3%98.4%98.6%
许可证MITAGPL-3.0MITMIT
多语言绑定20种PythonPythonPython
OCR支持是是否是
Markdown输出是是否是
MCP Server是否否否

注意事项

  1. AGPL对比:PyMuPDF采用AGPL-3.0许可证,商业使用需要额外授权。pdf_oxide的MIT/Apache-2.0许可允许自由商用。

  2. 大文件处理:对于超过500MB的PDF文件,建议使用分块处理或流式读取模式。

  3. 字体依赖:OCR功能需要额外安装Tesseract OCR引擎及其语言包。

  4. 内存使用:处理高分辨率扫描件时内存占用可能较高。

官方仓库:https://github.com/yfedoseev/pdf_oxide