采用Python 将PDF文件按照页码进行切分并保存
工作中经常会遇到 需要将一个大的PDF文件 进行切分,比如仅需要大PDF文件的某几页 或者连续几页,一开始都是用会员版本的WPS,但是对于程序员,就是要采用技术白嫖
这里就介绍一个 python的PDF 包 PyPDF2
其安装方式也很简单
pip install PyPDF2
安装完成后 我们给定以下代码即可进行 PDF文件 切分
def cut_pdf(pdf_path):
"""
:return: 根据指定的PDF文件 以及指定的页面以及页面范围 将原始输入PDF文件进行按照页为单位进行截取 并保存为新文件
"""
import PyPDF2
out_pdf = PyPDF2.PdfWriter()
dst_file = f'output.pdf'
conti_dict = {60: 70} # 连续页的集合 分别是{"起始页":"结束页"}
single_idx_list = [23] # 单页的集合
with open(pdf_path, 'rb') as src_file:
reader = PyPDF2.PdfReader(src_file)
pages = reader.pages
# 保存独立的页面
for i in single_idx_list:
out_pdf.add_page(reader.pages[i - 1])
# 保存连续的页面
for i in conti_dict.keys():
start_idx = i
end_idx = conti_dict[i]
# 针对每一对{起始:结束} 对 将其对应的PDF对象保存在列表中
for p in range(start_idx - 1, end_idx):
out_pdf.add_page(reader.pages[p])
with open(dst_file, 'ab') as out:
out_pdf.write(out)
经过验证是可行的
我们只需要在 conti_dict 变量中 键入连续PDF页面的起止部分
以及在 single_idx_list变量中将单独的页面追加在列表中即可