Python fitz包
介绍
fitz
是一个用于处理 PDF 文件的 Python 包,它是 PyMuPDF 的一个封装,提供了丰富的功能来操作 PDF 文件,包括读取、写入、编辑、提取文本和图像等。在本文中,我们将详细介绍 fitz
包的使用方法,并提供多个示例代码来演示其功能。
安装
首先,我们需要安装 fitz
包。可以使用 pip 命令来安装:
pip install pymupdf
打开 PDF 文件
首先,我们来看看如何打开一个 PDF 文件并获取其页面数量:
import fitz
# 打开 PDF 文件
pdf_path = "example.pdf"
pdf_document = fitz.open(pdf_path)
# 获取页面数量
num_pages = pdf_document.page_count
print(f"PDF 文件共有 {num_pages} 页")
运行以上代码,将会输出 PDF 文件的页数。
提取文本
接下来,我们将演示如何从 PDF 文件中提取文本:
# 提取第一页的文本
page = pdf_document[0]
text = page.get_text("text")
print(text)
运行以上代码,将会输出第一页的文本内容。
提取图像
除了文本,我们还可以从 PDF 文件中提取图像:
# 提取第一页的图像
image_list = page.get_images(full=True)
for image_index, image in enumerate(image_list):
xref = image[0]
base_image = pdf_document.extract_image(xref)
image_bytes = base_image["image"]
image_extension = base_image["ext"]
with open(f"image_{image_index}.{image_extension}", "wb") as image_file:
image_file.write(image_bytes)
运行以上代码,将会提取第一页的图像并保存到本地。
添加文本
接下来,我们将演示如何向 PDF 文件中添加文本:
# 添加文本到第一页
page.insert_text((100, 100), "Hello, geek-docs.com", fontsize=12, color=(1, 0, 0))
运行以上代码,将会在第一页的指定位置添加文本。
添加图像
除了文本,我们还可以向 PDF 文件中添加图像:
# 添加图像到第一页
image_path = "image.jpg"
image_rect = fitz.Rect(100, 100, 200, 200)
page.insert_image(image_rect, filename=image_path)
运行以上代码,将会在第一页的指定位置添加图像。
保存 PDF 文件
最后,我们需要保存对 PDF 文件的修改:
# 保存修改后的 PDF 文件
pdf_document.save("modified_example.pdf")
运行以上代码,将会保存修改后的 PDF 文件。
关闭 PDF 文件
最后,我们需要关闭打开的 PDF 文件:
# 关闭 PDF 文件
pdf_document.close()
运行以上代码,将会关闭打开的 PDF 文件。
总结
在本文中,我们详细介绍了 fitz
包的使用方法,包括打开 PDF 文件、提取文本和图像、添加文本和图像、保存 PDF 文件以及关闭 PDF 文件等操作。