• 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

    
    
  • 相关阅读:
    UVA 10935 约瑟夫环
    分拆素数和 埃氏筛法
    POJ 2349 Prim
    POJ 2031 prim
    POJ 1861 Kruskal
    POJ 2395 Prim
    POJ 1751 Prim
    POJ 2421 Prim
    vuejs开发环境搭建及热更新
    vuejs介绍
  • 原文地址:https://www.cnblogs.com/sunmoon1993/p/11063034.html
Copyright © 2020-2023  润新知