PyMuPDF 文档 1.24.4
来源:pymupdf.readthedocs.io/en/latest/
关于
功能比较
功能矩阵
下表展示了 PyMuPDF 与其他典型解决方案的比较。
功能 | PyMuPDF | pikepdf | PyPDF2 | pdfrw | pdfplumber / pdfminer |
| 支持多种文档格式 | PDF XPS EPUB MOBI FB2 CBZ SVG TXT 图片
DOCX XLSX PPTX HWPX 见 注释 | PDF | PDF | PDF | PDF |
实现方式 | 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 |
OCR API 与 Tesseract 的无缝集成 | 所有文档类型 | ||||
集成式检查点 / 重新启动功能(PDF) | |||||
PDF 可选内容 | |||||
PDF 嵌入式文件 | 有限 | 有限 | |||
PDF 文件编辑 | |||||
PDF 注释 | 完整 | 有限 | |||
PDF 表单字段 | 创建、读取、更新 | 有限,无创建 | |||
PDF 页面标签 | |||||
支持字体子集化 |
注意
关于 Office 文档类型(DOCX、XLXS、PPTX)和 Hangul 文档(HWPX)的说明。这些文档可以加载到 PyMuPDF 中,您将获得一个 文档 对象。
还有一些注意事项:
- 我们将输入转换为 HTML 以布局内容。
- 因此,原始页面分隔已经消失。
当保存结果时,不应期望任何忠实于原始布局的表示。
因此,输入文件大多以便于文本提取的形式呈现。
- 特性矩阵
以下表格说明了 PyMuPDF 与其他典型解决方案的比较。
特性 | PyMuPDF | pikepdf | PyPDF2 | pdfrw | pdfplumber / pdfminer |
| 支持多种文档格式 | PDF XPS EPUB MOBI FB2 CBZ SVG TXT Image
DOCX、XLSX、PPTX、HWPX 请见 注 | PDF | PDF | PDF | PDF |
实现 | 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 |
无缝集成 OCR API 与 Tesseract | 所有文档类型 | ||||
集成的检查点/重启功能(PDF) | |||||
PDF 可选内容 | |||||
PDF 嵌入文件 | 有限 | 有限 | |||
PDF 编辑 | |||||
PDF 批注 | 完整 | 有限 | |||
PDF 表单字段 | 创建、读取、更新 | 有限,不支持创建 | |||
PDF 页面标签 | |||||
支持字体子集 |
注意
关于Office文档类型(DOCX、XLXS、PPTX)和Hangul文档(HWPX)的说明。这些文档可以加载到 PyMuPDF 中,您将收到一个文档对象。
这里有一些注意事项:
- 我们将输入转换为HTML以布局内容。
- 由于这个原始页面分隔已经消失。
在保存结果时,不能期望得到原始布局的忠实表示。
因此,输入文件大多数情况下是有利于文本提取的形式。
性能
为了对 PyMuPDF 在一系列任务中的性能进行基准测试,使用了一个固定的测试套件,其中包含了 8 个 PDF 文件,共 7031 页,包含文本和图像,以获取性能时间。
这里是按任务分组的当前结果:
复制
这是指打开文档,然后将其保存为新文件。此测试测量了读取 PDF 和重写为新 PDF 的速度。这一过程也是类似合并/连接多个文档的核心功能。因此,下面的数字适用于 PDF 合并和连接。
所有 7,031 页的结果如下:
600500400300200100
⏱
seconds3.0510.5433.57494.04PyMuPDFPDFrwPikePDFPyPDF2fastest←←slowest
文本提取
这是指从文档的每一页提取简单的纯文本,并将其存储在文本文件中。
所有 7,031 页的结果如下:
400300200100
⏱
seconds8.0127.42101.64227.27PyMuPDFXPDFPyPDF2PDFMinerfastest←←slowest
渲染
这是指根据给定 DPI 分辨率从文档的每一页制作图像(如 PNG)。此功能是在 GUI 窗口中显示文档的基础。
所有 7,031 页的结果如下:
1000800600400200
⏱
seconds367.04646851.52PyMuPDFXPDFPDF2JPGfastest← *注
有关这些性能计时方法的详细信息,请参阅:性能比较方法论。
PyMuPDF 1.24.4 中文文档(一)(2)https://developer.aliyun.com/article/1559431