
PyMuPDF
用 Python 快速提取、转换和编辑 PDF,性能强劲
项目预览
项目数据
项目介绍
Star 增长趋势
本站每日记录该项目 GitHub 星标变化,观测越久曲线越完整
数据来源:GitHub API 逐日快照 · 收录于 2026-08-10 · 当前星标 ★ 11098
技术标签
使用教程
环境要求
- Python 3.10 – 3.14(官方预编译 wheel 覆盖范围)
- Windows / macOS / Linux 操作系统之一
- 如需 OCR:额外安装 Tesseract 及其语言数据文件(tessdata)
- 若平台无预编译 wheel:需要 C/C++ 编译工具链
安装与启动步骤
-
1确认 Python 版本
PyMuPDF 为 Python 3.10–3.14 提供预编译 wheel,先确认本地版本落在此区间,避免安装时源码编译。
python --version -
2安装 PyMuPDF
README 唯一给出的安装方式,直接通过 pip 安装;无强制外部依赖,正常情况下会下载对应平台的 wheel。
pip install pymupdf -
3打开 PDF 文档
导入 pymupdf 并打开目标文件,doc 对象即文档句柄;用 page = doc[0] 取第一页做后续处理。
python -c "import pymupdf; doc = pymupdf.open('scanned.pdf'); page = doc[0]" -
4OCR 识别扫描件
对扫描版 PDF 页面调用 get_textpage_ocr,需指定 language 参数,再用 extractText() 取出识别文本。前提是 Tesseract 已安装并在 PATH 中。
python -c "import pymupdf\ndoc = pymupdf.open('scanned.pdf')\npage = doc[0]\ntext = page.get_textpage_ocr(language='eng').extractText()\nprint(text)" -
5对图片做 OCR
OCR 可作用于独立图片:先用 Pixmap 载入图片,若带 alpha 通道必须先移除,否则无法进行 OCR。
python -c "import pymupdf\npix = pymupdf.Pixmap('image.png')\nif pix.alpha:\n pix = pymupdf.Pixmap(pix, 0)\n" -
6配置 tessdata 路径
若未安装 Tesseract 或自动发现失败,可通过 tessdata 参数显式指定语言数据目录,或设置 TESSDATA_PREFIX 环境变量。
export TESSDATA_PREFIX=/your/path/tessdata
关键配置
| 配置项 | 必填 | 说明 | 示例 |
|---|---|---|---|
language | 是 | OCR 识别语言代码,支持 100 多种语言 | eng |
tessdata | 否 | 显式指定 Tesseract 语言数据目录,避免自动发现失败 | /your/path/tessdata |
TESSDATA_PREFIX | 否 | 环境变量形式的 tessdata 路径配置 | /your/path/tessdata |
如何确认成功
执行 import pymupdf 无报错即安装成功;对扫描页调用 OCR 后能打印出识别文本即 OCR 可用。
常见问题
Q:OCR 需要额外安装 Tesseract 吗?
A:需要。PyMuPDF 使用 MuPDF 内置的 Tesseract OCR 支持,不依赖 Python 的 pytesseract,但仍需 Tesseract 的语言数据文件 tessdata,并建议安装 Tesseract 使自动发现生效。
Q:没有对应的预编译 wheel 怎么办?
A:pip 会改为从源码编译,此时平台需要具备 C/C++ 编译工具链,编译耗时更长且可能因环境缺失而失败。
Q:需要额外 pip 安装 OCR 相关依赖吗?
A:不需要。PyMuPDF 没有强制的 Python 级 OCR 依赖,OCR 能力由 MuPDF 内置的 Tesseract 支持提供。
Q:图片 OCR 报错怎么办?
A:先检查 Pixmap 是否带 alpha 通道,带的话要用 pymupdf.Pixmap(pix, 0) 移除透明通道,这是 OCR 的前置要求。
注意事项
- PyMuPDF 无强制外部依赖,pip install pymupdf 即可完成主体安装。
- OCR 依赖独立的 Tesseract 及其 tessdata 语言数据,需自行安装或配置路径。
- 未显式提供 tessdata 路径时,自动发现可能调用 tesseract 可执行文件(如列出可用语言)。
- 预编译 wheel 仅覆盖 Python 3.10–3.14,其他版本需源码编译。
核心亮点
- 基于 MuPDF 引擎,解析和渲染 PDF 速度极快,尤其适合处理大型文件
- 功能全面,覆盖文本提取、图像提取、OCR、转换、编辑等常见需求
- API 设计简洁,文档丰富,上手容易,社区活跃
不足之处
- 依赖 MuPDF 原生库,安装包体积较大,部署环境可能受限
- 部分高级功能(如复杂表格结构识别)仍需结合其他工具或手动处理
适用场景
- 从大量 PDF 中批量提取文本或表格数据,用于数据分析和挖掘
- 将 PDF 转换为图片或 HTML,用于预览、展示或内容复用
- 自动化生成或修改 PDF 报告,如添加水印、合并文档、填充表单
替代项目
pdfplumber、PyPDF2、pdfminer.six
上一篇:markitdown
下一篇:Stirling PDF
同类项目推荐
LumaShot
开源
一个快捷键搞定截图标注、离线识字和录屏
Windows screenshot, annotation, offline OCR, clipboard history, GIF and screen recor···
deep-share
开源
一键复制 AI 公式,导出精美 Word,长对话截图分享。
A browser extension designed for AI users to easily copy formulas from ChatGPT, Deep···
pdf2md
开源
浏览器里直接把 PDF 变成 Markdown,不用上传,隐私安全。
Browser based tool to convert PDFs to Markdown
crosspaste-desktop
开源
局域网内多设备剪贴板秒同步,端到端加密不走云
Cross-device clipboard sync for macOS, Windows & Linux — end-to-end encrypted, LAN-···
dataline
开源
用对话搞定数据分析,不用写SQL也能出图
Chat with your data - AI data analysis and visualization on CSV, Postgres, MySQL, Sn···
globalthreatmap
开源
一张地图看懂全球军事冲突与历史脉络
Global threat map. Learn wars, conflicts, military bases and history of nations.
odd-snap
开源
免费开源跨平台截图,带标注和 OCR 文字提取
Your new favorite, free, and open source screenshot tool
teable
开源
像填表格一样建数据库,数据再多也不乱
✨ AI Spreadsheet for Business
JadeAI
开源
上传旧简历,AI 帮你改出高匹配度新简历
AI-Powered Smart Resume Builder — 50+ professional templates, PDF/image parsing, AI···