目录
- 基本原理与基础语句
- PdfReader类
- PdfWriter类
- 文件写入
- 对pdf文件进行插入操作
- 对pdf文件进行删除页操作
- 对pdf文件进行分割操作
基本原理与基础语句
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
:插入的页码,在本页之后插入
文件写入
with open(pdf_file, "wb") as f:pdf_file.write(f)
其中pdf_file
是PdfWriter类
对pdf文件进行插入操作
import PyPDF2def 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 = 0for 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 Noneinsert_pdf(file0,[file1, file2, file3],new_file,[index1, index2, index3])
对pdf文件进行删除页操作
import PyPDF2def 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] -= 1output_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 Nonedelete_pdf(file0,new_file,[index1, index2])
对pdf文件进行分割操作
import PyPDF2def 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 Nonesplit_pdf(file0,[new_file1, new_file2, new_fil3, new_file4],[index1, index2, index3])