PyMuPDF:多格式文档处理工具
pymupdf/PyMuPDF 在 GitHub 上已经拿到 9,696 Star 了。
这个工具为 MuPDF 添加了 Python 绑定和抽象层,MuPDF 是轻量级的 PDF、XPS、电子书查看器、渲染器和工具集,两者都由 Artifex Software 公司维护开发。
1、 这玩意儿是干嘛的
PyMuPDF 可以处理多种格式的文件,包括 PDF、XPS、OpenXPS、CBZ、EPUB、FB2 等电子书格式,以及 PNG、JPG、BMP、TIFF 等约 10 种常见图片格式。
它支持对所有兼容的文档类型执行多项操作:解密文档,访问元信息、链接和书签,将页面渲染为 PNG 等栅格格式或 SVG 矢量格式,搜索文本,提取文本和图片,转换为 PDF、HTML、XML、JSON、文本等格式。如果安装了 Tesseract,还可以执行光学字符识别。
在特定场景下,PyMuPDF 也可以作为图片转换器使用,它能读取多种输入格式,输出 PNG、PNM、PAM、Adobe PostScript、Adobe Photoshop 等格式的文件,在这类场景中可以替代其他图形处理工具。它也支持与 PIL/Pillow 对接,实现图片输入输出的交互。
针对 PDF 文档,它还有更多额外功能:创建、合并或拆分 PDF,插入、删除、重排或修改页面,支持注释和表单字段。可以提取或插入图片和字体,项目仓库中提供了 GUI 示例脚本,可以可视化控制图片的插入、删除、替换和重新定位。如果安装了 fontTools,还可以根据字体在文档中的使用情况构建子集,对新建的 PDF 来说,这可以显著减小文件体积。支持嵌入文件,对 PDF 进行重新排版以支持双面打印、海报制作、添加 logo 或水印。完全支持密码保护,包括解密、加密、加密方法选择、权限级别和用户/所有者密码设置。可以访问和修改 PDF 底层结构,还提供命令行模块,支持加密解密、优化、创建子文档、合并文档、提取图片和字体、提取带布局的文本等功能。

2、 有什么特点
MuPDF 以高性能和出色的渲染质量著称,PyMuPDF 继承了这些特性。处理文档时速度快,渲染效果准确。
它没有强制的外部依赖,部分可选功能需要安装额外包:安装 Pillow 可以直接输出 Pillow 格式的图片,安装 fontTools 可以创建字体子集,安装 pymupdf-fonts 可以使用更多字体进行文本输出,安装 Tesseract-OCR 并配置环境变量 TESSDATA_PREFIX 后可以使用光学字符识别功能。
PyMuPDF 从 2016 年 8 月开始在 PyPI 上发布,支持 Python 3.7 及以上版本,提供 Windows、Linux、Mac OSX 平台的预编译 wheel 包,安装过程简单。

3、 如何安装使用
安装前建议先升级 pip:
python -m pip install --upgrade pip
python -m pip install --upgrade pymupdf
如果 pip 找不到兼容的 wheel 包,会自动从源码构建,此时需要系统安装有 SWIG。
官方提供了完整的文档,托管在 Read the Docs 上,包含参考指南和用户手册,还有教程和常见问题章节可以帮助快速上手。项目仓库中也提供了演示程序、示例代码和 Jupyter 笔记本,覆盖了大部分常见使用场景。
4、 适合哪些人用
需要批量处理 PDF 或其他文档格式的开发者,做数据预处理需要提取文档文本和图片的使用者,开发文档处理相关工具的团队,需要在应用中集成文档渲染或编辑功能的项目。
开源地址:https://github.com/pymupdf/PyMuPDF



