处理PDF文件总让人头大?PyPDF2库简直就是救星!这个Python库能给PDF文档来个大变身 - 合并文件、提取页面、旋转页面,甚至还能提取文本内容。不管是批量处理PDF还是定制化修改,都不在话下。
基础配置
安装PyPDF2超简单,一行命令搞定:
pip install PyPDF2
装好后,写代码前先导入:
from PyPDF2 import PdfReader, PdfWriter
读取PDF文件
来看看怎么打开并读取PDF:
# 创建PdfReader对象reader = PdfReader(“测试文档.pdf”)# 获取页数page_count = len(reader)# 读取第一页内容page = reader.pages[0]text = page.extract_text()print(text)
温馨提示:PDF文件路径要写对,要么用完整路径,要么确保文件在当前目录下。
合并PDF文件
把多个PDF合在一起特别常用:
def merge_pdfs(pdf_files, output_name): writer = PdfWriter() for pdf in pdf_files: reader = PdfReader(pdf) for page in reader.pages: writer.add_page(page) with open(output_name, “wb”) as output: writer.write(output)# 使用示例pdf_list = [“文件1.pdf”, “文件2.pdf”, “文件3.pdf”]merge_pdfs(pdf_list, “合并后的文件.pdf”)
旋转和翻转页面
有时候PDF页面方向不对,得转一下:
reader = PdfReader(“原文件.pdf”)writer = PdfWriter()# 获取第一页并旋转90度page = reader.pages[0]page.rotate(90)writer.add_page(page)with open(“旋转后的文件.pdf”, “wb”) as output: writer.write(output)
提取指定页面
只想要PDF中的某几页?轻轻松松:
reader = PdfReader(“原文件.pdf”)writer = PdfWriter()# 提取第2页和第4页(注意:页码从0开始)pages_to_extract = [1, 3]for page_num in pages_to_extract: writer.add_page(reader.pages[page_num])with open(“提取的页面.pdf”, “wb”) as output: writer.write(output)
温馨提示:页码从0开始数,要第1页得用index 0,经常有人在这栽跟头。
加密PDF文件
防止文件乱传,加个密码:
reader = PdfReader(“原文件.pdf”)writer = PdfWriter()for page in reader.pages: writer.add_page(page)# 设置密码writer.encrypt(“你的密码”)with open(“加密后的文件.pdf”, “wb”) as output: writer.write(output)
遇到啥问题都别慌,PyPDF2写着写着就熟练了。代码不用死记硬背,知道大概咋用就行,具体细节查文档。我平时就喜欢边写边查,效果贼好。
文件操作完记得关闭,不然容易出问题。要是处理大批量PDF,最好加个异常处理,免得中间出错整个程序就崩了。
Would you like me to explain or break down any of the code examples?