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 操作和自动化任务。
版权声明:
本文来源网络,所有图片文章版权属于原作者,如有侵权,联系删除。
本文网址:https://www.mushiming.com/mjsbk/524.html