python常用库 自动化办公类 —— PyPDF2(处理pdf文件)

python常用库 自动化办公类 —— PyPDF2(处理pdf文件)

摘要

本文主要介绍了利用python的PyPDF2库自动处理pdf文件。

PyPDF库的安装

pip install PyPDF2
# 或者使用国内镜像源安装
pip install PyPDF2 -i https://pypi.tuna.tsinghua.edu.cn/simple

PyPDF库的常用功能

文字提取

以下图所示pdf进行文字提取演示
在这里插入图片描述
生成pdf文件操作对象

f = open(r"D:\习题一 .pdf","rb")
pdf_reader = PyPDF2.PdfFileReader(f)

获取该pdf文件的页数

page_nums = pdf_reader.numPages
print(page_nums)
4

提取第一页的文字

pdf_page_1 = pdf_reader.getPage(0)

text_page_1 = pdf_page_1.extractText()

print(text_page_1)

f.close()
'lI{gŽ

4

/
I{

4
8


 
1
eÅ
A

可看出该库对中文的提取质量很差,不建议使用该库进行中文提取。

合并pdf文件

46个PDF文件为例进行合并操作

#创建pdf合并对象
pdf_merger = PyPDF2.PdfFileMerger()

# 读取需要合并的pdf文件,并添加至合并对象
for index,file_dir in enumerate(dirs): # dirs为pdf文件存储路径的列表对象
    print("read pdf {}\{}".format(len(dirs),index+1))
    pdf_merger.append(file_dir)

# 写出合并后的pdf文件

with open("result.pdf","wb") as f:
    pdf_merger.write(f)
    print("success to merge!")

# %% 合并pdf...
read pdf 46\1
read pdf 46\2
read pdf 46\3
read pdf 46\4
read pdf 46\5
read pdf 46\6
read pdf 46\7
read pdf 46\8
read pdf 46\9
read pdf 46\10
read pdf 46\11
read pdf 46\12
read pdf 46\13
read pdf 46\14
read pdf 46\15
read pdf 46\16
read pdf 46\17
read pdf 46\18
read pdf 46\19
read pdf 46\20
read pdf 46\21
read pdf 46\22
read pdf 46\23
read pdf 46\24
read pdf 46\25
read pdf 46\26
read pdf 46\27
read pdf 46\28
read pdf 46\29
read pdf 46\30
read pdf 46\31
read pdf 46\32
read pdf 46\33
read pdf 46\34
read pdf 46\35
read pdf 46\36
read pdf 46\37
read pdf 46\38
read pdf 46\39
read pdf 46\40
read pdf 46\41
read pdf 46\42
read pdf 46\43
read pdf 46\44
read pdf 46\45
read pdf 46\46
success to merge!

旋转pdf页面

以文字提取·章节的pdf文件进行页面旋转操作

# 创建pdf写入对象
pdf_writer = PyPDF2.PdfFileWriter()

# 读取待旋转的pdf文件
pdf_reader = PyPDF2.PdfFileReader(r"D:\习题一 .pdf")

# 逐页旋转 并将旋转后的页面 添加至写入对象
for i in range(pdf_reader.numPages):
    # 获取第i页
    page = pdf_reader.getPage(i)
    # 顺时针旋转270度
    page.rotateClockwise(270)
    # 添加至写入对象
    pdf_writer.addPage(page)

# 保存写入对象为pdf文件
with open("rotate_result.pdf","wb") as f:
    pdf_writer.write(f)

在这里插入图片描述

pdf文件加密

以文字提取·章节的pdf文件进行加密操作

# 读取需要进行加密的pdf文件
pdf_reader = PyPDF2.PdfFileReader(r"D:\习题一 .pdf")

# 新建一个pdf文件写入对象
pdf_writer = PyPDF2.PdfFileWriter()

# 将读取的pdf文件逐页添加至写入对象
for i in range(pdf_reader.numPages):
    pdf_writer.addPage(pdf_reader.getPage(i))
    
# 进行加密
pdf_writer.encrypt(user_pwd = "123456")

# 写出文件
with open("encrypt_result.pdf","wb") as f:
    pdf_writer.write(f)

在这里插入图片描述

by CyrusMay 2021 01 19

摸不到的颜色
是否叫彩虹
看不到的拥抱
是否叫做微风
——————五月天(星空)——————

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值