当前位置: 首页 > news >正文

PyMuPDF:这个 Python 库,把 PDF 所有操作都覆盖了

文章目录

  • PyMuPDF:这个 Python 库,把 PDF 所有操作都覆盖了
    • 1、它到底能做什么
    • 2、PDF 场景下,能做的不止阅读
    • 3、安装不折腾
    • 4、适合什么场景
    • 5、许可和注意事项

PyMuPDF:这个 Python 库,把 PDF 所有操作都覆盖了

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

Artifex 公司维护的 Python 绑定库,底层跑的是 MuPDF 引擎。PDF、XPS、EPUB、CBZ 这些文档格式,加上 PNG、JPG 等 10 种图片格式,全部能当文档来操作。

1、它到底能做什么

先搞清楚它的位置:PyMuPDF 不是从头写的 Python PDF 库,而是给 MuPDF 这个 C 渲染引擎加了一层 Python 绑定。MuPDF 由 Artifex 开发,出名的是渲染质量和速度,2022 年 8 月发了 1.21.0 版本。

对所有文档类型均可执行的操作:

  • 解密文档
  • 读取元信息、链接和书签
  • 页面渲染为 PNG 或 SVG
  • 文本搜索
  • 提取文本和图片
  • 格式转换:PDF、HTML、XML、JSON、纯文本
  • 配合 Tesseract 实现 OCR

列表不长,但已覆盖了文档处理的大部分环节。渲染和提取这两个能力放在一个库里,意味着你不用再分别装 PDF 查看器和文本提取工具。

2、PDF 场景下,能做的不止阅读

如果处理对象是 PDF,能力还会扩大一圈:

  • 创建、合并、拆分 PDF
  • 插入、删除、重排页面
  • 修改页面内容,含注释和表单字段
  • 提取或插入图片、字体
  • 字体子集化,缩小新建 PDF 的文件体积(需装 fontTools)
  • 对嵌入式文件的完全支持
  • 双面打印排版、海报化、添加水印
  • 密码保护:解密、加密、权限设置、用户/所有者密码
  • 访问和修改底层 PDF 结构

跟纯读写的 PDF 库不同,PyMuPDF 在修改和创建这两条线上都给到了接口。你可以在一个库里完成从读、改、写到输出的闭环。

仓库还内置了命令行入口:python -m fitz,能在终端完成加密解密、合并文档、提取图片字体、保留版式的文本提取。不需要每次写脚本才能用。

另外值得提的是它和 PIL/Pillow 的对接很顺畅。在文档流水线里,PyMuPDF 可以当中间层处理图片格式转换,读入多种格式,输出 PNG、PNM、PAM、PostScript 或 Photoshop 格式。这意味着你不用为图片中间处理再引入额外的图形库。

官方仓库提供了 demo 脚本、完整示例程序和 Jupyter notebook。其中有一个 GUI 脚本,能让你以可视化的方式对 PDF 中的图片进行插入、删除、替换和重定位。

3、安装不折腾

没有强制性外部依赖。Python 3.7 及以上即可。

pipinstall--upgradepip pipinstall--upgradepymupdf

预编译 wheel 覆盖 Windows(32/64 位)、Linux(64 位 Intel 和 ARM)、macOS(64 位 Intel)。如果 pip 在本平台找不到匹配的 wheel,会从源码编译,只要求系统装了 SWIG。

几个可选增强:

  • Pillow:直接用 pillow 做图片输出
  • fontTools:字体子集化,新建 PDF 时显著缩小体积
  • pymupdf-fonts:提供字体用于文本输出
  • Tesseract-OCR:OCR 能力,需单独安装 Tesseract 并设TESSDATA_PREFIX环境变量

4、适合什么场景

  • 自动化文档处理流程,用 PyMuPDF 替代多个工具的串联。比如批量提取 PDF 中的图片和文字,一个库打通
  • 从 PDF 中提取结构化数据,它的文本提取默认保留版式,不像某些方案输出结果是打乱的
  • 做文档转换管线,支持的输入输出格式够广
  • PDF 生成、合并、拆分、加水印这类运维脚本
  • 需要 OCR 的文档数字化项目
  • 对图片做格式转换,不想引入额外图形库的场景

5、许可和注意事项

PyMuPDF 使用 AGPL 开源协议。用于商业项目时,要评估 AGPL 对衍生代码的要求。AGPL 的 copyleft 范围比 MIT 或 Apache 更大,如果你的产品是闭源的,需要确认合规。如果 AGPL 与你的使用场景有冲突,Artifex 提供商业许可。

这个库从 2016 年起就在 PyPI 上持续维护,文档用 Sphinx 生成,托管在 Read the Docs,含教程和 FAQ 章节。遇到问题可以通过 Discussions 和 Issues 找维护者。

,文档用 Sphinx 生成,托管在 Read the Docs,含教程和 FAQ 章节。遇到问题可以通过 Discussions 和 Issues 找维护者。

http://www.zskr.cn/news/1496366.html

相关文章:

  • 苹果WWDC26引爆全端AI产品,Meta/WIMI微美全息加速抢滩XR眼镜硬件市场
  • 2026必看!独立开发者高性价比AI编程工具大全
  • Effective C++ 条款06:若不想使用编译器自动生成的函数,就应该明确拒绝
  • 重新定义音乐自由:插件化播放器如何让你真正掌控音乐体验
  • 3分钟搞定Windows和Office激活:KMS_VL_ALL_AIO智能脚本全解析
  • Whisky终极指南:在macOS上轻松运行Windows程序的5个简单步骤
  • Docker Compose 深度剖析:一文打尽所有配置信息
  • 告别手忙脚乱:如何用League-Toolkit让英雄联盟游戏体验更丝滑
  • 基于Spring Boot的智能停车导航与管理系统设计与实现
  • MPV播放器终极配置指南:从零构建专业级媒体播放体验
  • 2026年主流AI招聘工具深度对比:哪款真正能帮你省下80%筛选时间
  • AlistHelper:告别命令行,用图形界面轻松管理Alist文件服务
  • Autolabel自动标注工具终极指南:5分钟让AI帮你搞定数据标注难题
  • Smart-SIM工程案例—船舶筏架力学性能快速预测
  • 芯片制造:Bandgap(带隙基准源)电路中重要的模块和功能
  • 自动装盘机倒瓶检测系统的传感器选型与信号处理
  • PCDN服务SLA设计:承诺多少节点在线才合理?
  • Playwright MCP Docker 部署:mcr 镜像、浏览器工具和权限配置
  • 鸿蒙App开发--心愿池的动画特效:投币动画与进度条
  • 拒绝“胶水架构”:大模型时代,如何用统一任务基座破解 AI 研发的技术债?
  • 打造你的专属音乐库:LXMusic音源配置实战指南
  • 亚马逊270天库存生死线!超龄库存清仓全攻略
  • 终极指南:5分钟在Mac上实现Android手机USB网络共享
  • 计算机毕业设计之智能家居安全体系设计及实现
  • 手动创建Gazebo环境与自适应控制PX4
  • Windows 10 Android子系统移植实战指南:架构解析与深度部署方案
  • AI驱动的自动化——金融、物流与医疗行业的转型
  • 前端八股文面经大全:美团前端暑期实习一面(2026-06-08)·面经深度解析
  • equals 和 hashCode 方法:使用它们的原因和位置,以及它们的工作原理
  • 小程序开发入门:从零掌握基础代码结构