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_oxide | PyMuPDF | pypdf | markitdown |
|---|---|---|---|---|
| 平均速度 | 0.8ms | 4.6ms | 12.1ms | 108.8ms |
| 通过率 | 100% | 99.3% | 98.4% | 98.6% |
| 许可证 | MIT | AGPL-3.0 | MIT | MIT |
| 多语言绑定 | 20种 | Python | Python | Python |
| OCR支持 | 是 | 是 | 否 | 是 |
| Markdown输出 | 是 | 是 | 否 | 是 |
| MCP Server | 是 | 否 | 否 | 否 |
注意事项
AGPL对比:PyMuPDF采用AGPL-3.0许可证,商业使用需要额外授权。pdf_oxide的MIT/Apache-2.0许可允许自由商用。
大文件处理:对于超过500MB的PDF文件,建议使用分块处理或流式读取模式。
字体依赖:OCR功能需要额外安装Tesseract OCR引擎及其语言包。
内存使用:处理高分辨率扫描件时内存占用可能较高。
官方仓库:https://github.com/yfedoseev/pdf_oxide