
图片型 PDF 没有文本层,pdfplumber 之类的文本提取工具拿它完全没辙。要把扫描件、截图型 PDF 转成 Markdown,必须走 OCR pipeline。MinerU 在这方面效果很好,版面分析、公式识别、表格结构化都能处理,但本地部署门槛不低——GPU、几个 G 的模型文件、CUDA 和 PyTorch 版本对齐,光配环境就可能折腾半天。
好消息是 MinerU 现在开放了完整的开发者生态(mineru.net/ecosystem),涵盖 Python / Go / TypeScript SDK、CLI、LangChain / LlamaIndex 集成、MCP 等大量接入方式。本文针对题主的需求,重点介绍最实用的两条路:Python SDK 和 CLI——不需要 GPU、不需要装模型、不需要折腾环境,直接调云端服务。
方案一:Python SDK(写 Python 的首选)
安装
pip install mineru-open-sdk
就这一行,没有 PyTorch、没有 CUDA、没有模型权重下载。
最简示例:3 行代码解析一个 PDF
from mineru import MinerU
client = MinerU()
result = client.flash_extract("扫描件.pdf")
print(result.markdown)
flash_extract 是免登录、免 Token 的轻量模式,拿来就能用。公式和表格识别默认开启,单文件最大 10MB / 20 页,日常够用。
批量处理:题主要的「能批量跑」
import os
from mineru import MinerU
client = MinerU()
pdf_dir = "/path/to/pdfs"
for fname in os.listdir(pdf_dir):
if fname.endswith(".pdf"):
pdf_path = os.path.join(pdf_dir, fname)
result = client.flash_extract(pdf_path)
out_path = os.path.join(pdf_dir, fname.replace(".pdf", ".md"))
result.save_markdown(out_path)
print(f"完成: {fname}")
如果文件多或者单个文件大,可以切换到精准模式。Token 在 mineru.net/apiManage/token 免费申请,支持最大 200MB / 200 页:
from mineru import MinerU
client = MinerU("your-api-token")
# 批量提交,边处理边返回
for result in client.extract_batch(["a.pdf", "b.pdf", "c.pdf"]):
result.save_all(f"./output/{result.filename}/")
print(f"{result.filename}: 完成")
精准模式还能输出 DOCX、HTML、LaTeX,用 extra_formats=["docx", "html"] 参数指定即可。
方案二:CLI 命令行工具
不想写 Python 代码的话,CLI 工具更直接。
安装
# Linux / macOS
curl -fsSL https://cdn-mineru.openxlab.org.cn/open-api-cli/install.sh | sh
# Windows (PowerShell)
irm https://cdn-mineru.openxlab.org.cn/open-api-cli/install.ps1 | iex
零依赖,单二进制文件,不需要任何运行时。
单文件解析
mineru-open-api flash-extract 扫描件.pdf
Markdown 结果直接输出到 stdout,免 Token。
批量处理
mineru-open-api extract --list files.txt -o ./results/
CLI 的 stdout 设计对自动化很友好,可以直接管道给下游工具:
mineru-open-api extract paper.pdf | some-llm-tool
两种方案快速对比
| Python SDK | CLI | |
|---|---|---|
| 适合谁 | Python 开发者、需要在代码中集成 | Shell 脚本、CI/CD、不想写代码 |
| 安装 | pip install mineru-open-sdk |
一行 curl/irm |
| 免Token使用 | flash_extract() |
flash-extract 命令 |
| 批量能力 | extract_batch() 迭代器 |
--list 或通配符 |
| 输出格式 | MD / DOCX / HTML / LaTeX / JSON | MD / DOCX / HTML / LaTeX / JSON |
| 编程集成 | 原生 Python 对象,.markdown .images 直接用 |
stdout 文本流,管道友好 |
和本地部署怎么选
云端方案(SDK / CLI)适合大多数场景:零 GPU、零环境配置,免费的 flash 模式就能覆盖日常需求。精准模式处理大文件、多格式输出也免费。
本地部署(pip install magic-pdf[full])适合数据不能出内网的场景:完全离线运行,但需要 GPU(推荐 8GB+ 显存)和比较折腾的环境配置。
对于题主说的「批量跑图片型 PDF 转 Markdown」,Python SDK 的 flash_extract 就够了——装个包、写几行代码、不用管 GPU 的事。
相关链接
- MinerU 生态主页:mineru.net/ecosystem
- Python SDK:GitHub
- CLI 工具:GitHub
- API Token 申请:mineru.net/apiManage/token
- API 文档:mineru.net/apiManage/docs