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

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

  • 摘要
  • PyPDF库的安装
  • PyPDF库的常用功能
    • 文字提取
    • 合并pdf文件
    • 旋转pdf页面
    • pdf文件加密

摘要

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

PyPDF库的安装

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

PyPDF库的常用功能

文字提取

以下图所示pdf进行文字提取演示
python常用库 自动化办公类 —— PyPDF2(处理pdf文件)_第1张图片
生成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)

python常用库 自动化办公类 —— PyPDF2(处理pdf文件)_第2张图片

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)

python常用库 自动化办公类 —— PyPDF2(处理pdf文件)_第3张图片

by CyrusMay 2021 01 19

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

你可能感兴趣的:(python常用库,python,pdf,PyPDF2,自动化办公,pdf加密)