PyPDF2 是一个纯 Python 库,用于读取、修改和创建 PDF 文件。以下是 PyPDF2 的详细介绍:
安装 PyPDF2
PyPDF2 可以通过 pip 安装:
pip install PyPDF2
PyPDF2 的主要功能
- 读取 PDF 文档:获取文档信息,如标题、作者、创建日期等,以及页面数量和页面尺寸。
- 提取文本内容:从 PDF 页面提取文本。
- 合并 PDF 文档:将多个 PDF 文件合并为一个文件。
- 拆分 PDF 文档:将一个 PDF 文件拆分为多个文件。
- 旋转页面:支持将页面内容按 90 度的倍数进行旋转。
- 裁剪页面:裁剪页面到指定区域。
- 添加和删除页面:向 PDF 文档添加新页面或删除现有页面。
- 编辑页面内容:添加文字、图片等内容到页面。
- 添加水印:向页面添加文字或图片水印。
- 加密和解密:对 PDF 文档进行加密和解密,设置密码保护。
- 处理表单:读取和填写 PDF 表单数据,创建、修改和删除表单字段。
- 元数据处理:设置和修改 PDF 文档的元数据,如标题、作者、主题等。
- 书签和链接操作:添加书签到 PDF 文档,实现快速导航;添加超链接到页面。
示例代码
以下是一些使用 PyPDF2 的示例代码:
读取 PDF 信息
import PyPDF2
with open('example.pdf', 'rb') as file:
pdf = PyPDF2.PdfFileReader(file)
num_pages = pdf.numPages
metadata = pdf.getDocumentInfo()
print("页数:", num_pages)
print("标题:", metadata.title)
print("作者:", metadata.author)
提取文本
import PyPDF2
with open('example.pdf', 'rb') as file:
pdf = PyPDF2.PdfFileReader(file)
page = pdf.getPage(0)
text = page.extractText()
print(text)
合并 PDF
import PyPDF2
merger = PyPDF2.PdfFileMerger()
merger.append('document1.pdf')
merger.append('document2.pdf')
with open('merged_document.pdf', 'wb') as output:
merger.write(output)
拆分 PDF
import PyPDF2
with open('example.pdf', 'rb') as file:
pdf = PyPDF2.PdfFileReader(file)
for page_num in range(pdf.numPages):
output_pdf = PyPDF2.PdfFileWriter()
output_pdf.addPage(pdf.getPage(page_num))
with open(f'page{page_num + 1}.pdf', 'wb') as output_file:
output_pdf.write(output_file)
添加水印
import PyPDF2
with open('example.pdf', 'rb') as file:
pdf = PyPDF2.PdfFileReader(file)
watermark = PyPDF2.PdfFileReader(open('watermark.pdf', 'rb'))
output_pdf = PyPDF2.PdfFileWriter()
for page_num in range(pdf.numPages):
page = pdf.getPage(page_num)
page.mergePage(watermark.getPage(0))
output_pdf.addPage(page)
with open('watermarked_document.pdf', 'wb') as output_file:
output_pdf.write(output_file)
注意事项
- PyPDF2 不再积极维护,可能不支持最新 PDF 特性。
- 对于复杂 PDF 结构,PyPDF2 可能无法正确处理。
- 考虑使用其他库,如 PyMuPDF(fitz)、pdfplumber 或 PDFMiner,以获得更好的兼容性和功能。
PyPDF2 提供了简单直观的 API,适合进行基本的 PDF 操作和自动化任务。