1.背景
被那些软件pdf拆分整气死了,今天用python写一份pdf拆分的代码。
2.代码:(计算机的可以去学习一下,自己改改)
pdf_split.py
- from PyPDF2 import PdfFileReader, PdfFileWriter
-
- # PDF文件分割
- def split_pdf():
- try:
- read_file = input("请输入要拆分的PDF名字(例如test.pdf):")
- fp_read_file = open(read_file, 'rb')
- pdf_input = PdfFileReader(fp_read_file) # 将要分割的PDF内容格式话
- page_count = pdf_input.getNumPages() # 获取PDF页数
- print("该文件共有{}页".format(page_count)) # 打印页数
-
- Customize=input("是否自定义拆封规则(Yes or No):")
- if Customize=="No":
- size=input("请输入一个文件中保存的页数(分为等份):")
- out_detail=input("请输入拆封规则文件(eg 1.txt):")
- n=page_count//int(size)
- with open(out_detail,"w") as fp:
- for i in range(n):
- start=i*int(size)+1
- end=int(start)+int(size)-1
- if end>page_count:
- end=page_count
- temp=str(start)+str('-')+str(end)
- tp=str(temp)+" split_"+str(start)+'_'+str(end)+'\n'
- fp.write(tp)
- else:
- out_detail=input("请配置好拆分规则文件,并输入文件(eg. 1.txt):")
-
-
-
- with open(out_detail, 'r',True,'utf-8')as fp:
-
- txt = fp.readlines()
- for detail in txt: # 打开分割标准文件
-
- pages, write_file = detail.split() # 空格分组
- pdf_file = f'{write_file}.pdf'
- # liststr=list(map(int, pages.split('-')))
- # print(type(liststr))
- start_page, end_page = list(map(int, pages.split('-'))) # 将字符串数组转换成整形数组
- start_page -= 1
- try:
- print(f'开始分割{start_page}页-{end_page}页,保存为{pdf_file}......')
- pdf_output = PdfFileWriter() # 实例一个 PDF文件编写器
- for i in range(start_page, end_page):
- pdf_output.addPage(pdf_input.getPage(i))
- with open(pdf_file, 'wb') as sub_fp:
- pdf_output.write(sub_fp)
- print(f'完成分割{start_page}页-{end_page}页,保存为{pdf_file}!')
- except IndexError:
- print(f'分割页数超过了PDF的页数')
-
- except Exception as e:
- print(e)
-
-
- if __name__ == '__main__':
- split_pdf()
-
-
-
3.可执行文件(.exe) 非计算机的可以用这个
链接:https://pan.baidu.com/s/1Zye2nHwPv2599JlszD_NKg
提取码:123l
4.使用
(1)把exe(py)文件放到想要拆分pdf的目录下
(2)执行exe(py) 首先输入想要拆分pdf的名字
(3 下面有是否选择自定义拆分目录,
默认规则为输入 :No -> 输入一个文件中保存的页数 :size,会均分为size大小的pdf
如果输入Yes 那需在该目录下编写一个txt文件,包括命名规则
eg.
一行中,前面表示拆分文件起始页到末页中原pdf的页码,后面表示生成的拆分pdf文件(文件名不要有空格,可能会出错)
可支持修改,在选择规则是选择Yes即可
下面要输入拆分规则文件(.txt) 即可生成拆分pdf的文件,运行截图如下:
外传:python生成可执行文件
要执行python文件,首先确定确定环境是否有PyPDF2
安装命令:
pip install PyPDF2
下面安装python可执行文件包
pip install pyinstaller
初始化py文件 执行下面命令,会生成一个pdf_split.spec文件
pyinstaller -F pdf_split.py
生成exe文件,再输入
pyinstaller pdf_split.spec