MuPDF:终极 PDF 文档管理库 #

MuPDF 是什么? #

MuPDF 是一款由 Artifex Software 开发的快速、强大的 PDF 与其他文档格式管理库(SDK),被官方定位为“管理 PDF 文档的终极库”。它把查看、编辑、提取、签名、渲染、注释、涂黑、转换、合并、拆分、压缩等几乎所有常见 PDF 任务,都封装进一个可嵌入的高性能引擎中,并在此基础上衍生出 MuPDF Core、PyMuPDF、MuPDF.js、MuPDF.NET 以及全新的 MuPDF WebViewer 等产品线。

对于需要在自己的软件中处理 PDF 的开发者而言,MuPDF 解决的是“自研 PDF 引擎成本高、第三方库速度慢、格式支持不全面”三大痛点:它既提供底层 C 库以保证像素级渲染精度与低内存占用,也提供 Python、JavaScript/TypeScript、C#、Java、C++ 等语言绑定降低接入门槛。官网显示其下载量已超过 10,000 次、评分 5.0 星,并被全球众多企业采用。无论是构建文档阅读器、批量文档处理流水线,还是网页内嵌 PDF 查看器,MuPDF 都能作为核心引擎使用。

MuPDF 有哪些亮点特色? #

  • 一个引擎,覆盖全流程 PDF 任务:官网明确列出 12 项核心能力——提取内容、渲染文档、嵌入 PDF、涂黑敏感内容、创建新 PDF、添加注释标记、解析 PDF、拆分 PDF、格式转换、合并多个 PDF、数字签名、压缩 PDF,几乎无需再引入其他库即可完成整套文档工作流。
  • 多格式输入输出,兼容性极强:输入支持 PDF、ePUB、PNG/JPG/BMP/TIFF/GIF、SVG、PNM/PAM、CBZ、XPS;输出支持 PDF、Text、HTML、PostScript、PCL5/PCLM(Mopria)、PWG/CUPS、Proofing、PNG、SVG、PNM/PAM,官方称其为同类产品中“格式支持最全面”的选手。
  • 极致性能与轻量内核:MuPDF 核心以 C 语言编写,主打快速与高效,可在低资源设备上实现高质量的“像素级完美”渲染,适合对性能敏感的大批量文档处理场景。
  • 多语言绑定,开发者友好:提供 PyMuPDF(轻量 Python 库)、MuPDF.js(Node.js / JavaScript / TypeScript)、MuPDF.NET(C# 语言绑定)、Java 绑定、C++ 绑定以及 WASM 版本,开发者可以用熟悉的技术栈快速接入。
  • MuPDF WebViewer:分钟级网页嵌入:全新推出的 PDF WebViewer 基于 MuPDF 引擎构建,官方称其具备“无与伦比的速度、性能与稳定性”,可快速把可定制的文档查看器嵌入网页或应用界面。
  • 完整的查看器生态:从 Windows / Linux 的 mupdf-gl(OpenGL,支持目录、Unicode 搜索)与 mupdf-x11 查看器,到 Android 的 MuPDF viewer、MuPDF mini,再到 iOS App Kit 与浏览器端 WASM 查看器,桌面、移动、Web 全平台覆盖。
  • 命令行工具集 mutool:内置 mutool draw、clean、convert、extract、merge、info、pages、poster、run 等一整套命令行工具,无需写代码即可批量完成转换、提取、合并、清理等任务。
  • 灵活的双重授权模式:开源版本采用 AGPL 协议,可直接下载使用;如需嵌入商业产品且不愿开源代码,可购买商业授权,获得无源码披露义务、完整修改与再分发权利以及官方技术支持。

MuPDF 官网首页截图

免费下载 MuPDF #

以下为官方提供的各平台安装包,点击链接即可下载。

文件名 描述 大小 下载
mupdf-1.28.5-windows.zip MuPDF 1.28.5 Windows 版压缩包(开源授权版本) 89.9 MB 夸克网盘

说明:官网 Releases 页面提供的是开源(AGPL)授权版本的下载;若需在商业产品中嵌入 MuPDF,请通过官网联系销售获取商业授权。

MuPDF 如何使用? #

MuPDF 既是库也是工具集,普通用户与开发者的使用路径略有不同,下面按最常见的三种场景说明。

场景一:使用命令行工具 mutool 处理文档(适合普通用户)

  1. 解压下载的 mupdf-1.28.5-windows.zip 到任意目录,例如 D:\mupdf。
  2. 将该目录添加到系统环境变量 PATH 中,方便在任意路径下调用命令。
  3. 打开命令提示符(CMD)或 PowerShell,输入 mutool 查看可用子命令列表。
  4. 按需执行任务,例如:
    • mutool draw -o page%d.png input.pdf:把 PDF 每页渲染为 PNG 图片;
    • mutool convert -o output.pdf input.epub:把 ePUB 转换为 PDF;
    • mutool merge -o merged.pdf a.pdf b.pdf:合并多个 PDF;
    • mutool extract input.pdf:提取 PDF 中的图片与字体资源;
    • mutool clean -gggg -s input.pdf output.pdf:清理并优化 PDF 体积;
    • mutool info input.pdf:查看 PDF 的基本信息与结构。
  5. 如需要图形界面阅读,可使用随包提供的 mupdf-gl 查看器(Windows / Linux),支持目录跳转、Unicode 搜索等功能。

场景二:在 Python 中使用 PyMuPDF(适合 Python 开发者)

  1. 执行 pip install pymupdf 安装。
  2. 在代码中 import pymupdf,用 pymupdf.open("demo.pdf") 打开文档。
  3. 通过 page.get_text() 提取文本、page.get_pixmap() 渲染页面、doc.save() 保存修改结果。

场景三:在网页或应用中嵌入查看器

  1. 使用 MuPDF WebViewer 快速嵌入网页端 PDF 查看器(官网提供在线试用 Demo)。
  2. 或在 Android / iOS 项目中集成官方 App Kit 与示例工程,按文档说明接入原生查看界面。
  3. 如需商用,先完成商业授权流程再发布。

MuPDF 的常见问题? #

MuPDF 是免费的吗? MuPDF 的开源版本采用 AGPL 协议,可以免费下载和使用。但 AGPL 要求:如果你把它嵌入自己的产品并对外分发,需要一并开源你的代码。若不愿开源,则须向 Artifex 购买商业授权。

MuPDF 和 PyMuPDF 是什么关系? MuPDF Core 是用 C 编写的底层核心库,PyMuPDF 是建立在 MuPDF 之上的轻量级 Python 绑定,让 Python 开发者无需接触 C 代码即可调用 MuPDF 的全部能力。二者同属 Artifex 官方产品线,此外还有 MuPDF.js、MuPDF.NET 等绑定。

MuPDF 支持哪些文档格式? 输入支持 PDF、ePUB、PNG、JPG、BMP、TIFF、GIF、SVG、PNM/PAM、CBZ、XPS;输出支持 PDF、Text、HTML、PostScript、PCL5/PCLM(Mopria)、PWG/CUPS、Proofing、PNG、SVG、PNM/PAM。官网称其为同类产品中格式支持最全面的方案之一。

MuPDF 有图形界面的阅读器吗? 有。Windows 和 Linux 上提供 mupdf-gl(基于 OpenGL,支持目录、Unicode 搜索等)以及更基础的 mupdf-x11 查看器;Android 上有 MuPDF viewer 和 MuPDF mini 两款应用;浏览器端则有 WASM 查看器可直接在网页中打开 PDF。

可以在商业闭源产品中使用 MuPDF 吗? 可以,但需要购买商业授权。官网“Get Licensed to Build without Limits”页面说明,商业授权可解除开源限制,包含无源码披露义务、完整的修改与再分发权利,以及官方技术支持。

遇到 Bug 或想贡献代码怎么办? 官网文档中心说明欢迎外部贡献者提交补丁,需先阅读并签署 Artifex Contributor License Agreement;Artifex Software 同时设有漏洞赏金计划。日常使用问题可在官方论坛与社区讨论。

MuPDF 如何安装? #

Windows

  1. 从官网 Releases 页面或上方下载链接获取 mupdf-1.28.5-windows.zip。
  2. 使用解压工具将压缩包解压到不含中文与空格的目录,例如 C:\mupdf。
  3. 将解压目录加入系统环境变量 PATH(“此电脑”→ 右键属性 → 高级系统设置 → 环境变量)。
  4. 打开新的命令提示符,输入 mutool -v 验证是否安装成功。
  5. 若需要图形界面,可直接双击目录中的 mupdf-gl 查看器程序。

macOS

  1. 推荐使用 Homebrew 安装:brew install mupdf(查看器)与 brew install mupdf-tools(命令行工具)。
  2. 也可从官网下载源码包,按文档执行 make 编译安装。
  3. 安装完成后在终端执行 mutool -v 确认版本。

Linux

  1. Debian / Ubuntu 系:sudo apt install mupdf mupdf-tools。
  2. Fedora / RHEL 系:sudo dnf install mupdf mupdf-tools。
  3. 也可从官网下载源码自行编译:解压后在源码目录执行 make 与 sudo make install。

Android / iOS

  1. Android:可在 Google Play 搜索 MuPDF viewer 或 MuPDF mini 安装;开发者可基于官方 mupdf-android-viewer、mupdf-android-mini 示例工程自行构建。
  2. iOS:使用官方 iOS App Kit 与示例工程,在 Xcode 中按文档集成。

Python / JavaScript / .NET 开发者

  1. Python:pip install pymupdf。
  2. Node.js / JavaScript / TypeScript:通过 npm 安装 MuPDF.js。
  3. C#:引入 MuPDF.NET 包。

提示:以上包管理器命令为各平台通用安装方式,若与官网最新说明不一致,请以官网 Releases 与文档中心为准。

MuPDF 如何卸载? #

Windows

  1. 如果使用解压版:直接删除解压目录(如 C:\mupdf)即可。
  2. 别忘了从系统环境变量 PATH 中移除对应条目。
  3. 如果通过安装程序安装:打开“设置 → 应用 → 已安装的应用”,找到 MuPDF 相关条目点击“卸载”。
  4. 如需彻底清理,检查 %APPDATA% 与 %LOCALAPPDATA% 下是否残留 MuPDF 配置目录并手动删除。

macOS

  1. 若通过 Homebrew 安装:brew uninstall mupdf 与 brew uninstall mupdf-tools。
  2. 若为手动编译安装:在源码目录执行 sudo make uninstall(如项目提供该目标),否则手动删除 /usr/local/bin/mutool、/usr/local/lib/libmupdf* 等相关文件。
  3. 如曾将应用拖入“应用程序”文件夹,直接拖入废纸篓并清空。

Linux

  1. Debian / Ubuntu 系:sudo apt remove --purge mupdf mupdf-tools,再执行 sudo apt autoremove 清理依赖。
  2. Fedora / RHEL 系:sudo dnf remove mupdf mupdf-tools。
  3. 源码安装的:在源码目录执行 sudo make uninstall,或手动删除 /usr/local 下的可执行文件与库文件。

Python / Node.js / .NET 环境

  1. Python:pip uninstall pymupdf。
  2. Node.js:npm uninstall mupdf。
  3. .NET:从项目中移除 MuPDF.NET 包引用即可。

提示:MuPDF 本体基本不写入用户级配置,卸载后通常无需额外清理;但若你使用查看器保存过最近打开记录等偏好设置,建议检查用户主目录下的相关配置文件夹并手动删除。

相关标签
MuPDFPDF SDKPDF 库PyMuPDFMuPDF.jsPDF 渲染PDF 提取PDF 转换PDF 注释开源 PDF 工具