哈喽,大家好!我是风哥,一个资深Python工程师。今天给大家分享一个处理PDF文件的Python库——PyPDF2。日常工作学习中,我们经常会和PDF文件打交道,比如合并、拆分、旋转等等。有了PyPDF2,这些操作在Python里就能轻松搞定!
一、PyPDF2简介
PyPDF2是一个纯Python的PDF文件处理库,它可以用来读取、合并、拆分、旋转PDF页面等等。它不依赖外部软件,安装也超级简单,直接用pip命令就行:pip install PyPDF2
。
注意事项: PyPDF2主要用于处理未加密的PDF文件。对于加密的PDF,它可能无法正常工作,或者需要提供密码才能操作。
二、读取PDF文件
读取PDF文件是使用PyPDF2的第一步。我们可以用PdfReader
对象来打开和读取PDF文件。
1from PyPDF2 import PdfReader
2
3reader = PdfReader("example.pdf") # 将 "example.pdf" 替换成你的PDF文件名
4num_pages = len(reader.pages)
5print(f"这个PDF文件有 {num_pages} 页")
6
7page = reader.pages[0] # 获取第一页
8text = page.extract_text()
9print(text)
注意事项:#### 读取PDF的时候,文件名一定要写对,包括路径。另外,extract_text()方法在提取文本时,对于复杂的PDF布局,可能会出现一些格式错乱的情况。
三、合并PDF文件
合并多个PDF文件也很简单,用PdfWriter和PdfReader就能搞定。
1from PyPDF2 import PdfReader, PdfWriter
2
3merger = PdfWriter()
4
5pdf_files = ["1.pdf", "2.pdf", "3.pdf"] # 将文件名替换成你要合并的文件名
6
7for pdf_file in pdf_files:
8 reader = PdfReader(pdf_file)
9 for page in reader.pages:
10 merger.add_page(page)
11
12with open("merged.pdf", "wb") as output_file: # 合并后的文件保存为 "merged.pdf"
13 merger.write(output_file)
1
注意事项:#### 合并PDF时,确保所有要合并的文件都存在,并且路径正确。合并后的文件名不要和已有的文件名重复,否则会覆盖掉原来的文件。
四、旋转PDF页面
有时候我们需要旋转PDF页面,比如扫描的文档方向不对。PyPDF2也提供了旋转页面的功能。
1from PyPDF2 import PdfReader, PdfWriter
2
3reader = PdfReader("example.pdf")
4writer = PdfWriter()
5
6page = reader.pages[0] # 获取要旋转的页面
7page.rotate(90) # 旋转90度,可以是90, 180, 270
8writer.add_page(page)
9
10with open("rotated.pdf", "wb") as output_file:
11 writer.write(output_file)
注意事项:旋转角度必须是90的倍数。每次旋转都是基于页面的当前方向进行的,而不是原始方向。
五、提取PDF页面
如果只想提取PDF文件中的某些页面,PyPDF2也可以做到。
1from PyPDF2 import PdfReader, PdfWriter
2
3reader = PdfReader("example.pdf")
4writer = PdfWriter()
5
6pages_to_extract = [0, 2, 5] # 要提取的页码,从0开始
7
8for page_num in pages_to_extract:
9 page = reader.pages[page_num]
10 writer.add_page(page)
11
12with open("extracted.pdf", "wb") as output_file:
13 writer.write(output_file)
注意事项:页码是从0开始计数的,别搞错了。提取的页码不能超过PDF文件的总页数。
**写在最后
今天的PyPDF2分享就到这里,希望能帮助大家更好地处理PDF文件。实践出真知,赶紧动手试试吧!如果在使用过程中遇到什么问题,欢迎在评论区留言,风哥看到后会第一时间回复大家。我们下次再见!