python gui 实现多个pdf文件合并成一个文件

这是gui截图,汉字都能看懂吧

上代码之前需要安装两个库

pip install PyPDF2
pip install PySimpleGUI

 然后直接运行代码

import os
from PyPDF2 import PdfReader, PdfWriter
import PySimpleGUI as sg
import tkinter as tk
from tkinter import filedialog

def GetFileName():
    root = tk.Tk()
    root.withdraw()
    file_list = filedialog.askopenfilenames(filetypes=[("PDF files", "*.pdf")])
    file_list = list(file_list)
    file_list.sort()
    return file_list


def MergePDF(file_list, output_dir, file_name):
    output = PdfWriter()
    outputPages = 0
    print(file_list)
    for pdf_file in file_list:
        print("文件:%s" % pdf_file.split('/')[-1], end=' ')
        # 读取PDF文件
        input = PdfReader(open(pdf_file, "rb"))
        # 获得源PDF文件中页面总数
        pageCount = len(input.pages)
        outputPages += pageCount
        print("页数:%d" % pageCount)
        # 分别将page添加到输出output中
        for iPage in range(pageCount):
            output.add_page(input.pages[iPage])
    print("\n合并后的总页数:%d" % outputPages)
    # 写入到目标PDF文件
    print("PDF文件正在合并,请稍等......")
    with open(os.path.join(output_dir, file_name + ".pdf"), "wb") as outputfile:
        output.write(outputfile)
    print("PDF文件合并完成")

# 创建GUI界面
layout = [
    [sg.Text('请选择要合并的多个PDF文件:')],
    [sg.Input(key='file_list'), sg.Button('浏览')],
    [sg.Text('请选择合并后的目标文件保存路径:')],
    [sg.Input(key='output_dir'), sg.FolderBrowse('浏览')],
    [sg.Text('请输入合并后的目标文件名前缀:')],
    [sg.Input(key='file_name'), sg.Text('.pdf', font=('Arial', 12))],
    [sg.Button('合并'), sg.Button('退出')]
]

window = sg.Window('PDF合并器', layout)

# 处理用户事件和输入
while True:
    event, values = window.read()
    if event == sg.WINDOW_CLOSED or event == '退出':
        break
    elif event == '浏览':
        file_list = GetFileName()
        window['file_list'].update(';'.join(file_list))
    elif event == '合并':
        file_list = values['file_list'].split(';')
        output_dir = values['output_dir']
        file_name = values['file_name']
        if file_list and output_dir and file_name:
            try:
                MergePDF(file_list, output_dir, file_name)
                sg.popup('合并成功!')
            except Exception as e:
                sg.popup('合并失败!', str(e))
        else:
            sg.popup('请输入有效的路径和文件名!')

window.close()

注意:

一次运行的时候,会有像安装软件的界面,第一个界面 下面 打勾,确定。然后再弹出的界面 点击‘free’ 免费使用的选项。然后就弹出合并pdf的界面了

相关推荐

最近更新

  1. TCP协议是安全的吗?

    2024-04-08 05:50:06       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-08 05:50:06       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-08 05:50:06       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-08 05:50:06       20 阅读

热门阅读

  1. HTTP的强制缓存和协商缓存

    2024-04-08 05:50:06       15 阅读
  2. HTTPS中的TLS和TCP能同时握手吗

    2024-04-08 05:50:06       15 阅读
  3. GMSSL学习笔记

    2024-04-08 05:50:06       12 阅读
  4. 网络安全之SQL注入

    2024-04-08 05:50:06       14 阅读
  5. ubuntu18.04-arm7v架构下构建Telegraf自定义系统服务

    2024-04-08 05:50:06       13 阅读
  6. ubuntu怎么按安装时间显示已安装的软件

    2024-04-08 05:50:06       14 阅读
  7. 使用docx4j转换word为pdf处理中文乱码问题

    2024-04-08 05:50:06       10 阅读
  8. @SpringBootApplication 详解

    2024-04-08 05:50:06       13 阅读
  9. Springboot 集成Rabbitmq之延时队列

    2024-04-08 05:50:06       15 阅读
  10. hadoop streaming及hadoop官方文档

    2024-04-08 05:50:06       16 阅读