基本原理与基础语句
PdfReader类
pdf_file = PyPDF2.PdfReader(filenmae)
通过PdfReader
函数可以读取pdf文件并生成一个PdfReader类
该类具有以下重要属性:
pages
:读取该类的页面列表,每个页面为一个Page对象,可以通过对该属性进行索引得到不同页面对象,也可以对其使用len
函数统计该pdf文件的页数
PdfWriter类
pdf_file = PyPDF2.PdfWriter()
通过PdfWriter
函数可以生成一个用于写入的空白PdfWriter类
该类具有以下重要方法:
1、增加页面方法:
add_page(page)
page
:Page对象
2、插入页面方法:
insert_page(page, index)
page
:Page对象
index
:插入的页码,在本页之后插入
PdfMerger类
pdf_file = PyPDF2.PdfMerger()
通过PdfMerger
函数可以生成一个用于合并的PdfMerger类
该类具有以下重要方法:
增加文件方法:
append(fileobj)
fileobj
:一个文件对象或者一个文件路径名
文件写入
with open(pdf_file, "wb") as f:
pdf_file.write(f)
其中pdf_file
是PdfWriter类或PdfMerger类
对pdf文件进行插入操作
import PyPDF2
def insert_pdf(input_pdf, insert_pdf, output_pdf, insert_page):
'''
input_pdf:需要插入的pdf文件名
insert_pdf:用于插入的padf文件名
output_pdf:新生成的pdf文件名
insert_page:在insert_page这一页之后插入,insert_page从1开始
'''
input_pdf = PyPDF2.PdfReader(input_pdf)
insert_pdf_list = []
for i in insert_pdf:
insert_pdf_list.append(PyPDF2.PdfReader(i))
output_file = PyPDF2.PdfWriter()
for i in range(0, len(input_pdf.pages)):
output_file.add_page(input_pdf.pages[i])
num = 0
for i in range(len(insert_page)):
for j in range(0, len(insert_pdf_list[i].pages)):
output_file.insert_page(insert_pdf_list[i].pages[j], int(num + insert_page[i] + j))
num += len(insert_pdf_list[i].pages)
with open(output_pdf, "wb") as f:
output_file.write(f)
return None
insert_pdf(file0,
[file1, file2, file3],
new_file,
[index1, index2, index3])
对pdf文件进行删除页操作
import PyPDF2
def delete_pdf(input_pdf, output_pdf, delete_page):
'''
input_pdf:用于操作的pdf文件名
outpupt_pdf:新生成的pdf文件名
delete_page:从1开始,将当前页面删除
'''
input_pdf = PyPDF2.PdfReader(input_pdf)
for i in range(len(delete_page)):
delete_page[i] -= 1
output_file = PyPDF2.PdfWriter()
for i in range(0, len(input_pdf.pages)):
if not i in delete_page:
output_file.add_page(input_pdf.pages[i])
with open(output_pdf, "wb") as f:
output_file.write(f)
return None
delete_pdf(file0,
new_file,
[index1, index2])
对pdf文件进行分割操作
import PyPDF2
def split_pdf(input_pdf, output_pdf_list, split_page):
'''
input_pdf:用于操作的pdf文件名
output_pdf_list:新生成的pdf文件名列表
split_page:在split_page这一页之后分割,split_page从1开始
'''
input_pdf = PyPDF2.PdfReader(input_pdf)
split_page = [0] + split_page + [len(input_pdf.pages)]
for i in range(len(split_page)-1):
output_file = PyPDF2.PdfWriter()
for j in range(split_page[i], split_page[i+1]):
output_file.add_page(input_pdf.pages[j])
with open(output_pdf_list[i], "wb") as f:
output_file.write(f)
return None
split_pdf(file0,
[new_file1, new_file2, new_fil3, new_file4],
[index1, index2, index3])
对pdf文件进行合并操作
import PyPDF2
def merge_pdf(input_pdf_list, output_pdf):
'''
input_pdf_list:用于合并的pdf文件名列表
output_pdf:新生成的pdf文件名
'''
output_file = PyPDF2.PdfMerger()
for i in input_pdf_list:
output_file.append(i)
with open(output_pdf, "wb") as f:
output_file.write(f)
return None
merge_pdf([file1, file2], new_file)