使用 Python 进行 PDF 文档处理可以通过多种库来实现,包括 PyPDF2、pdfplumber、reportlab、pdfminer 等。这些库可以处理不同的 PDF 任务,例如 提取文本、拆分合并 PDF、修改 PDF、生成 PDF 等。以下是几种常见操作及对应的库和代码示例。
- 安装常用库
首先,安装常用的 PDF 处理库:
pip install PyPDF2 pdfplumber reportlab
- 提取 PDF 文本
PyPDF2 和 pdfplumber 都可以用于提取 PDF 文本。PyPDF2 更轻量,但有时处理复杂的 PDF 格式效果较差,而 pdfplumber 更加适合处理表格等复杂结构的 PDF。
使用 PyPDF2 提取文本
import PyPDF2
# 打开 PDF 文件
with open('sample.pdf', 'rb') as file:
reader = PyPDF2.PdfReader(file)
# 提取每一页的文本
for page_num in range(len(reader.pages)):
page = reader.pages[page_num]
text = page.extract_text()
print(f"第 {page_num + 1} 页的文本:\n{text}")
使用 pdfplumber 提取文本
pdfplumber 更适合处理结构化数据,尤其是表格。
import pdfplumber
# 打开 PDF 文件
with pdfplumber.open('sample.pdf') as pdf:
for page_num in range(len(pdf.pages)):
page = pdf.pages[page_num]
text = page.extract_text()
print(f"第 {page_num + 1} 页的文本:\n{text}")
- 合并与拆分 PDF 文件
使用 PyPDF2 合并 PDF 文件
可以将多个 PDF 文件合并为一个文件。
import PyPDF2
pdf_files = ['file1.pdf', 'file2.pdf', 'file3.pdf']
merger = PyPDF2.PdfMerger()
for pdf in pdf_files:
merger.append(pdf)
# 保存合并后的 PDF 文件
with open('merged_output.pdf', 'wb') as output_file:
merger.write(output_file)
使用 PyPDF2 拆分 PDF 文件
将 PDF 文件拆分为单独的页面。
import PyPDF2
# 打开 PDF 文件
with open('sample.pdf', 'rb'