1.首先,实现功能源码
#!/usr/bin/env python # coding=utf-8 import tkinter.messagebox from tkinter import * from PyPDF2 import PdfFileReader, PdfFileWriter import re # 设置全局变量 filename="" pdf_input="" fp_read_file="" page_count=0 # PDF文件分割 def split_pdf( out_detail): try: with open(out_detail, 'r', True, 'utf-8')as fp: # print(fp) txt = fp.readlines() # print(txt) for detail in txt: # 打开分割标准文件 # print(type(detail)) # print(detail) # 如果取到的内容包括“the file to be split is :” line_wold = "the file to be split is :" if line_wold in detail: # 切割获取文件名: rule = r'the file to be split is :(.*?.pdf)' filename = re.findall(rule, detail)[0].strip() print(filename) fp_read_file = open(filename, 'rb') pdf_input = PdfFileReader(fp_read_file) # 将要分割的PDF内容格式话 page_count = pdf_input.getNumPages() # 获取PDF页数 print("该文件一共"+str(page_count)+"页") # 打印页数 print(filename) print("获取文件名完成,开始分割") continue pages, write_file = detail.split() # 空格分组 # write_file, write_ext = os.path.splitext(write_file) # 用于返回文件名和扩展名元组 pdf_file = f'{write_file}.pdf' # liststr=list(map(int, pages.split('-'))) # print(type(liststr)) try: start_page, end_page = list(map(int, pages.split('-'))) # 将字符串数组转换成整形数组 print(start_page) except : tkinter.Tk().withdraw() tkinter.messagebox.showwarning("配置文件", "页数为空或不是正整数,请检查配置文件") return if start_page < 1: # 隐藏主窗口 tkinter.Tk().withdraw() # 消息框提示消息 tkinter.messagebox.showwarning("配置文件","起始页面不能为0!请重新编辑页面") return start_page -= 1 # 如果输入页数大于最大页数,则最大页数 if end_page > page_count: end_page=page_count # 隐藏主窗口 tkinter.Tk().withdraw(); tkinter.messagebox.showwarning("配置文件", "分割页数超过了PDF的页数,已调整为结束页为最后一页"+str(page_count)) 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的页数') # 这个部分其实可以不用try,前面已经处理过了 except Exception as e: print(e) finally: fp_read_file.close() split_pdf( 'configure.txt') 2.实现打包成脱离python环境的.EXE程序 我的代码路径,在这个路径下,按住shift+鼠标右键,进入命令窗口
输入命令实现打包,pyinstaller包自行用pip install 去下载就好
打包成功之后会在目录下生成build和dist文件夹,exe文件在dist文件夹下
3.如何使用
这个工具需要传入参数,你要分割 的PDF文件全称,配置分割页数,分割后的文件名称,在配置文件中写好
4.双击exe文件,即可分割
作为初学者自己搞出这个东西还是蛮开心,分享给各位,希望对你有帮助!!!
欢迎转载!请加原创网址: