每个页面用参数缓存,放到一个文件中加缓存的页面id就行,循环。
# -*-coding:utf-8-*-
from PyPDF2 import PdfReader, PdfWriter
# 输入和输出文件路径
input_pdf_path = r'D:\your_big_pdf_file.pdf'
output_pdf_dir = r'D:\result'
# 打开解密后的 PDF 文件
#with open(r'D:\your_big_pdf_file.pdf', 'rb') as file:
# 创建一个 PDF 阅读器对象
reader = PdfReader(input_pdf_path)
# 定义要提取的页码范围(页码从0开始,10-15页为 9 到 14)
start_page = 10 # 第10页
end_page = 15 # 第15页
# 遍历指定页码范围,提取每一页并保存为单独的 PDF 文件,开区间不包含end_page,想要包含的,end+1
for page_num in range(start_page, end_page):
writer = PdfWriter() #循环内每次重新实例化,因为保存多个文件
page = reader.pages[page_num]
# 添加当前页到新的 PDF 文件
writer.add_page(page)
# 定义输出 PDF 文件名
output_pdf_path = f"{output_pdf_dir}\result_page_{page_num + 1}.pdf" #dir中没有斜杠,这里需要加上,不然跑到上个文件夹里去了,文件名还带着文件夹的名字。
# 将单页写入新的 PDF 文件
with open(output_pdf_path, 'wb') as output_pdf: #遍历循环内写入操作
writer.write(output_pdf)
print(f"第 {page_num + 1} 页已保存到 {output_pdf_path}")
print("指定页码的 PDF 提取完成。")