Python对PDF文档操作第三方库PyPDF库功能介绍

1、读取pdf文档
import PyPDF2
pdf = PyPDF2.PdfFileReader(‘test.pdf’)
其中,PdfFileReader是一个用来用来读入pdf的类,其中的参数如下

class PyPDF2.PdfFileReader(stream, strict=True, warndest=None, overwriteWarnings=True)
主要的参数是stream表示文件对象

2、获取文档信息
# 下面两个函数等价
print(pdf.getDocumentInfo())
print(pdf.documentInfo)

3、获取文档页码
# 获取页码
print(pdf.getNumPages())

4、提取第m页的内容
# 提取第m页的内容
print(pdf.getPage(m))

5、删除文档中的部分页
方法一
pdf = PyPDF2.PdfFileReader(‘test.pdf’)
pdfFileMerge = PyPDF2.PdfFileMerger()
# pages是(start, stop[, step])格式
# 本代码表示提取第1页和第2页(文档从第0页开始)
pdfFileMerge.append(fileobj=pdf, pages=(1, 3))
# 将提取后的文档写入test01.pdf
pdfFileMerge.write(“test01.pdf”)

方法二
pdf = PyPDF2.PdfFileReader(‘test.pdf’)
pdfFileWriter = PyPDF2.PdfFileWriter()
# 获取页码
numPages = pdf.getNumPages()
# 保留的页码
needList = [1, 5, 6]
for index in range(numPages):
if index in needList:
page = pdf.getPage(index)
pdfFileWriter.addPage(page)
# 将提取后的文档写入test01.pdf
pdfFileWriter.write(open(“test01.pdf”, ‘wb’))
如果想设置去除的页码,在index判断时改为not in即可

6、将两个pdf合并
6.1在pdf的末尾插入新的pdf
# 先读取两个文档
pdf = PyPDF2.PdfFileReader(“test1.pdf”)
add_pdf = PyPDF2.PdfFileReader(‘test2.pdf’)
pdfFileMerge = PyPDF2.PdfFileMerger()
# 在后面追加pdf,pages是(start, stop[, step])格式
pdfFileMerge.append(fileobj=pdf, pages=(0, 10))
pdfFileMerge.append(fileobj=add_pdf, pages=(5, 15))
# 将插入后的结果写入test01.pdf
pdfFileMerge.write(“D:/py3/CSDN/test01.pdf”)
上文代码的含义是 在pdf指向的文档的第0页到第9页后添加add_pdf对应的文档的第4页到第14页。如果不设置pages参数则默认为整个文档。

6.2在pdf中的某一页添加新的pdf
# 先读取两个文档
pdf = PyPDF2.PdfFileReader(“test1.pdf”)
add_pdf = PyPDF2.PdfFileReader(‘test2.pdf’)
pdfFileMerge = PyPDF2.PdfFileMerger()
# 在后面追加pdf,pages是(start, stop[, step])格式
pdfFileMerge.append(fileobj=pdf, pages=(0, 10))
# 相比于append,merge还可以指定position参数,该参数表示从第几页插入新的pdf
pdfFileMerge.merge(position=1, fileobj=add_pdf, pages=(5, 15))
# 将插入后的结果写入test01.pdf
pdfFileMerge.write(“D:/py3/CSDN/test01.pdf”)
通过position参数设置从第几页开始添加,如例子中是从第一页开始添加,即第一页已是add_pdf的内容

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值