PyMuPDF:用 Python 操控 PDF 的利器

PyMuPDF 在 GitHub 上已经拿到 9,906 Star。

它是 MuPDF 的 Python 绑定,由 Artifex Software 维护。MuPDF 本身是一个轻量级的文档查看器和渲染引擎,以渲染速度和输出质量著称,支持 PDF、XPS、OpenXPS、CBZ、EPUB、FB2 等格式。PyMuPDF 把这个能力封装成 Python 接口,让你能用代码处理上述所有格式,以及十余种常见图片格式。

正文顶部截图

1、它能做什么

文档处理的基础操作都能覆盖:解密文件、读取元信息、提取链接和书签、渲染页面为 PNG 或 SVG、搜索文本、提取文字和图片、转换成 PDF、HTML、XML、JSON 或纯文本。如果系统装了 Tesseract,还能做 OCR。

图片也能当文档处理。PyMuPDF 支持 PNG、JPG、BMP、TIFF 等格式的读取和输出,可以直接转成 PNM、PAM、PostScript 或 Photoshop 格式。和 PIL、Pillow 的对接也很直接。

README区域截图

2、PDF 专属能力

PyMuPDF 对 PDF 的支持最为深入。你可以创建、合并、拆分 PDF,插入、删除、重新排列页面,添加注释和表单字段。

图片和字体可以单独提取或插入。项目仓库里还有一个带 GUI 的示例脚本,支持在可视化界面下插入、删除、替换或重新定位图片。如果装了 fontTools,还能根据文档实际使用情况生成字体子集,新 PDF 的体积能明显缩小。

嵌入式文件处理、双面打印排版、海报化、加水印都支持。PDF 的密码保护、加密方式选择、权限级别设置也都有完整接口。Optional Content 概念、底层 PDF 结构访问和修改同样覆盖。

命令行模块 python -m fitz 提供了另一个入口,支持加密解密、子文档生成、文档合并、图文提取、布局保留的文本提取等功能。

3、安装与文档

需要 Python 3.7 以上。Windows、Linux、macOS 都有预编译 wheel:

python -m pip install --upgrade pip
python -m pip install --upgrade pymupdf

没有强制依赖。可选扩展包括 Pillow、fontTools、pymupdf-fonts 和 Tesseract OCR。如果 pip 找不到对应平台的 wheel,会从源码编译安装,这时需要系统里装了 SWIG。

文档托管在 Read the Docs,有完整的参考指南和用户手册。入门可以从 tutorial 和 recipes 章节开始。项目仓库里还提供了 demo、完整示例程序和 Jupyter Notebook。

4、适合谁用

需要做文档自动化的开发者,比如批量处理 PDF、提取内容入库、生成报告。做数据清洗和 RAG 管线的人也会用到它的文本提取和格式转换能力。如果工作里经常和 PDF 打交道,这个库值得了解。

会用到它的文本提取和格式转换能力。如果工作里经常和 PDF 打交道,这个库值得了解。

更多推荐