功能比较#
特性矩阵#
下表说明了PyMuPDF与其他典型解决方案的比较。
| 特性 | PyMuPDF | pikepdf | PyPDF2 | pdfrw | pdfplumber / pdfminer |
|---|---|---|---|---|---|
| 支持多种文档格式 |
PDF
XPS
EPUB
MOBI
FB2
CBZ
SVG
TXT
图像
DOCX XLSX PPTX HWPX 见 注释 |
||||
| 实现 | Python 和 C | Python 和 C++ | Python | Python | Python |
| 渲染文档页面 | 所有文档类型 | 无渲染 | 无渲染 | 无渲染 | 无渲染 |
| 将文本写入 PDF 页面 |
参见: Page.insert_htmlbox 或: Page.insert_textbox 或: TextWriter |
||||
| 支持CJK字符 | |||||
| 提取文本 | 所有文档类型 | PDF 仅限 | PDF 仅限 | ||
| 提取文本为Markdown (.md) | 所有文档类型 | ||||
| 提取表格 | 所有文档类型 | PDF 仅限 | |||
| 提取矢量图形 | 所有文档类型 | 有限 | |||
| 绘制矢量图形(PDF) | |||||
| 基于现有的成熟库 | MuPDF | QPDF | |||
| 受损PDF的自动修复 | |||||
| 加密的PDF文件 | 有限 | 有限 | |||
| 线性化PDF文档 | |||||
| 增量更新 | |||||
| 与 Jupyter 和 IPython 笔记本集成 | |||||
| 合并 / 连接 PDF 与其他文档类型 | 所有文档类型 | PDF 仅限 | PDF 仅限 | PDF 仅限 | PDF 仅限 |
| 与Tesseract无缝集成的OCR API | 所有文档类型 | ||||
| 集成检查点/重启功能 (PDF) | |||||
| PDF 可选内容 | |||||
| 嵌入的PDF文件 | 有限 | 有限 | |||
| PDF 涂黑 | |||||
| PDF 注释 | 完整 | 有限 | |||
| PDF 表单字段 | 创建、读取、更新 | 有限,无法创建 | |||
| PDF页面标签 | |||||
| 支持字体子集 |
注意
关于Office 文档类型 (DOCX, XLXS, PPTX) 和 Hangul 文档 (HWPX) 的说明。这些文档可以加载到PyMuPDF中,您将会收到一个Document 对象。
有一些注意事项:
我们将输入转换为 HTML 以布局内容。
由于这个原因,原始页面分隔消失了。
在保存结果时,无法期望对原始布局的任何忠实表现。
因此,输入文件大多以对文本提取有用的形式存在。
性能#
为了对 PyMuPDF 的性能进行基准测试,使用一套包含固定数量的8个PDF,共7,031页文本和图像的测试套件来获取性能时间。
以下是当前结果,按任务分组:
- Copying
这指的是打开一个文档,然后将其保存为一个新文件。该测试测量读取 PDF 的速度并重新写入为一个新的 PDF。这个过程也是合并/连接多个文档等功能的核心。因此,下面的数字适用于 PDF 的连接和合并。
所有7,031个页面的结果为:
⏱
- Text Extraction
这指的是从文档的每一页提取简单的、纯文本并将其存储在文本文件中。
所有7,031页的结果为:
⏱
- Rendering
这指的是在给定的DPI分辨率下,从文档的每一页生成一张图像(如PNG)。此功能是以图形用户界面窗口显示文档的基础。
所有 7,031 页的结果是:
⏱
注意
有关这些性能时间的 methodology 的更多细节,请参见:性能比较方法论。
许可证和版权#
PyMuPDF 和 MuPDF 现在可以在开源 AGPL 和商业许可协议下使用。请阅读 AGPL 许可证协议的完整文本,该文本在发行材料中(文件 COPYING)和 here 中可用,以确保您的用例符合许可证的指南。如果您确定无法满足 AGPL 的要求,请联系 Artifex 获取有关商业许可证的更多信息。
Artifex 是MuPDF的独家商业授权代理。
Artifex、Artifex标志、MuPDF和MuPDF标志是Artifex Software Inc.的注册商标
本文件涵盖了PyMuPDF v1.25.2的功能,时间为2025-01-17 00:00:01。
PyMuPDF 和 MuPDF 的主要版本和次要版本将始终相同。只有第三个限定符(补丁级别)可能与 MuPDF 的不同。
通常情况下,PyMuPDF的发布频率高于MuPDF,因此PyMuPDF的补丁级别通常会高于嵌入的MuPDF。
例如 PyMuPDF-1.24.5 包含 MuPDF-1.24.2。
另请参见 pymupdf_version 和 mupdf_version。