Python使用PyPDF2处理PDF文件的实用技巧

Ryan
Ryan
发布时间:2026-10-15 | 2人浏览过
原创

本文详细介绍如何使用Python的PyPDF2库处理PDF文件。涵盖安装方法,以及如何读取PDF元数据、提取文本、删除指定页面、旋转页面角度,以及合并多个PDF文件的具体代码示例和操作步骤。

前言:

PyPDF2是一个纯Python编写的开源库,支持对PDF文件进行分割或合并操作,同时也具备裁剪页面和转换PDF页面的功能。此外,该库还可以用于查看PDF文件的元信息,以及对PDF文件进行加密保护。

由于PyPDF2是开源库,使用前需先完成安装步骤。

pip install PyPDF2

1.读取PDF

import PyPDF2

reader = PyPDF2.PdfFileReader(open('a.pdf','rb'))
print(reader.getNumPages())

print(reader.getIsEncrypted())
print(reader.getDocumentInfo())
page = reader.getPage(8)
print(page.extractText())

首先导入PyPDF2模块,接着以二进制读模式打开名为a.pdf的文件,并将其传入PdfFileReader类的初始化函数中。PdfFileReader的初始化函数会返回一个PdfFileReader类的对象,利用该对象可以获取PDF文件的相关信息。

调用getNumPages函数可获取PDF的总页数,使用getIsEncrypted函数检查文件是否已加密。通过getDocumentInfo函数可获取文件的元数据。利用getPage函数并传入下标可获取特定PDF页面,注意下标从0开始,这与Python内置的字符串、列表和元组的索引方式一致。此外,通过PageObject类的extractText方法可以提取页面中的文本内容。从该方法的返回结果来看,提取PDF文本的效果可能并不理想。

2.删除pdf的某些页

实现思路:PyPDF2本身不能直接编辑PDF文件,但我们可以利用PyPDF2将需要的页面从源PDF文档拷贝到新的PDF文档中,通过这种间接方式实现编辑PDF的功能。例如,若要删除a.pdf中的第一页,可按以下步骤操作。

import PyPDF2

reader = PyPDF2.PdfFileReader(open('a.pdf','rb'))
output = PyPDF2.PdfFileWriter()
for i in range(1,reader.getNumPages()):
    output.addPage(reader.getPage(i))
outputStream = open ("b.pdf","wb")
output.write(outputStream)
outputStream.close()

3.旋转页面

PageObject类中包含部分用于修改PDF页面的方法,其中rotateClockwise和rotateCounterClockwise方法专门用于旋转页面。这两个方法仅接受一个参数,且该参数的值必须是90的倍数,用以指定旋转的角度。

import PyPDF2

reader = PyPDF2.PdfFileReader(open('a.pdf','rb'))
output = PyPDF2.PdfFileWriter()
page = reader.getPage(0)
page.rotateClockwise(180)
output.addPage(page)
outputStream = open ("b.pdf","wb")
output.write(outputStream)
outputStream.close()

4.合并pdf

from PyPDF2 import PdfFileMerger

merger = PdfFileMerger()

a = open("a.pdf",'rb')
b = open("b.pdf",'rb')
c = open("c.pdf",'rb')

merger.append(fileobj = a,pages = (0,3))
merger.merge(position=2,fileobj=b,pages=(0,1))
merger.append(c)
output = open("d.pdf","wb")
merger.write(output)

append方法通过fileobj参数确定要添加的PDF文件,并通过pages参数指定需要将哪些PDF页面添加到新的PDF文件中,这些页面会被添加到merger对象的末尾。merge方法相较于append方法,额外增加了position参数,允许通过该参数指定页面插入的具体位置。append方法和merge方法的pages参数具有较高的灵活性,该参数接受一个三元组(start,stop[,step]),分别表示起点、终点和步长。利用该参数可以精确指定合并PDF文件中的页面范围。

到此这篇关于python使用技巧Pdf的详细内容介绍的文章就介绍到这了,更多相关python使用技巧Pdf介绍内容请搜索本站以前的文章或继续浏览下面的相关文章希望大家以后多多支持本站!

相关标签:

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表