打开文件#

支持的文件类型#

PyMuPDF 可以打开除 PDF 之外的文件。

以下文件类型被支持:

PDF XPS 电子出版物 移动电子书 FB2 CBZ SVG 文本文件
JPG/JPEG, PNG, BMP, GIF, TIFF, PNM, PGM, PBM, PPM, PAM, JXR, JPX/JP2, PSD
JPG/JPEG, PNG, PNM, PGM, PBM, PPM, PAM, PSD, PS

如何打开文件#

要打开一个文件,请执行以下操作:

doc = pymupdf.open("a.pdf")

注意

上面的内容创建了一个 Document。指令 doc = pymupdf.Document("a.pdf") 完全相同。因此, open 只是一个方便的别名,你可以在那一章找到它的完整API文档。

使用错误的文件扩展名打开#

如果您的文档具有错误的文件扩展名,您仍然可以正确打开它。

假设 “some.file” 实际上是一个 XPS。这样打开它:

doc = pymupdf.open("some.file", filetype="xps")

注意

PyMuPDF 本身不会尝试从文件内容中确定文件类型。 需要以某种方式提供文件类型信息 - 要么隐式地通过文件扩展名,要么明确地如 filetype 参数所示。有纯 Python 包,例如 filetype,可以帮助您完成此操作。有关完整描述,请参考 Document 章节。

如果 PyMuPDF 遇到一个未知/缺失扩展名的文件,它会尝试将其作为 PDF 打开。因此,在这些情况下不需要额外的预防措施。同样,对于内存文档,您可以只指定 doc=pymupdf.open(stream=mem_area) 将其作为 PDF 文档打开。

如果您尝试打开不支持的文件,则PyMuPDF将抛出文件数据错误。


打开远程文件#

对于服务器上的远程文件(即非本地文件),您需要将文件数据流式传输PyMuPDF

例如使用requests库如下:

import pymupdf
import requests

r = requests.get('https://mupdf.com/docs/mupdf_explored.pdf')
data = r.content
doc = pymupdf.Document(stream=data)

从云服务打开文件#

有关处理存储在典型云服务上的文件的更多示例,请参见这些 Cloud Interactions code snippets


将文件作为文本打开#

PyMuPDF 具备将任何普通文本文件作为文档打开的能力。为此,您应该为 pymupdf.open 函数提供 filetype 参数,值为 "txt"

doc = pymupdf.open("my_program.py", filetype="txt")

通过这种方式,您能够打开多种文件类型并执行典型的非PDF特定功能,如文本搜索、文本提取和页面渲染。显然,一旦您渲染了您的txt内容,那么保存为PDF或与其他PDF文件合并就没有问题。

示例#

打开一个 C# 文件#

doc = pymupdf.open("MyClass.cs", filetype="txt")

打开一个 XML 文件#

doc = pymupdf.open("my_data.xml", filetype="txt")

打开一个 JSON 文件#

doc = pymupdf.open("more_of_my_data.json", filetype="txt")

等等!

正如你可以想象的,许多基于文本的文件格式可以被PyMuPDF非常简单地打开解释。这使得对大量以前无法获得的文件进行数据分析和提取突然成为可能。


本软件按原样提供,不作任何明示或暗示的担保。该软件根据许可证分发,除非按照该许可证的条款明确授权,否则不得复制、修改或分发。有关许可信息,请参阅artifex.com或联系Artifex Software Inc.,地址:39 Mesa Street, Suite 108A, San Francisco CA 94129, United States以获取更多信息。