PDF分割--可脱离python环境执行,可传参数,可弹窗的PC端小工具

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文件,即可分割

作为初学者自己搞出这个东西还是蛮开心,分享给各位,希望对你有帮助!!!

欢迎转载!请加原创网址:https://www.cnblogs.com/sunmoon1993/p/11063034.html


原文地址:https://www.cnblogs.com/sunmoon1993/p/11063034.html