工作中经常会遇到 需要将一个大的PDF文件 进行切分,比如仅需要大PDF文件的某几页 或者连续几页,一开始都是用会员版本的WPS,但是对于程序员,就是要采用技术白嫖
这里就介绍一个 python的PDF 包 PyPDF2
其安装方式也很简单
pip install PyPDF2
安装完成后 我们给定以下代码即可进行 PDF文件 切分
def cut_pdf(pdf_path):""":return: 根据指定的PDF文件 以及指定的页面以及页面范围 将原始输入PDF文件进行按照页为单位进行截取 并保存为新文件"""import PyPDF2out_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 = iend_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变量中将单独的页面追加在列表中即可