由于厌倦了某**软件拆分pdf功能需要收费,现使用pypdf2库自行拆分pdf
使用下面代码需要注意的是:
- 首先你得有python和pypdf2吧
- 把本程序和待拆分文件放在同一路径下,当然你自行定义绝对路径也没问题
- pypdf2的版本最好是2.x.x的,3.0.0+的好像更新了函数名称,会报错,解决方法卸载3.0.0+的安装2.x.x的就行了,这个在程序注释中也有说明。
程序如下(大概率没问题,我反正能用):
from PyPDF2 import PdfFileReader, PdfFileWriter
# 注意:pypdf2安装2.0.0版本就行了,3.0报错
# 如果没有安装pypdf2,直接pip install PyPDF2==2.0.0安装
# 安装了3的,先卸载之前的,pip unistall PyPDF2,再执行安装2的命令
# 如果无版本问题,只需要跟更改24,26,28行的变量值即可,注意这个需要相同路径,
def split_single_pdf(read_file, start_page, end_page, pdf_file):
# 获取原始pdf文件
fp_read_file = open(read_file, 'rb')
# 将要分割的PDF内容格式化
pdf_input = PdfFileReader(fp_read_file)
# 实例一个 PDF文件编写器
pdf_output = PdfFileWriter()
# 把start_page到end_page页放到PDF文件编写器
for i in range(start_page - 1, end_page):
pdf_output.addPage(pdf_input.getPage(i))
# PDF文件输出
with open(pdf_file, 'wb') as pdf_out:
pdf_output.write(pdf_out)
print(f'{read_file}分割{start_page}页-{end_page}页完成,保存为{pdf_file}!')
# 要处理的pdf文件
file_path = '22.pdf'
# 切分开始页面
start = 1
# 切分结束页面
end = 22
# 切分后文件文件名
pdf_file = file_path[:-4] + '_s' + str(start) + '_e' + str(end) + file_path[-4:]
split_single_pdf(file_path, start, end, pdf_file)