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的界面了

相关推荐
开开心心就好10 小时前
发票合并打印工具,多页布局设置实时预览
linux·运维·服务器·windows·pdf·harmonyos·1024程序员节
软件工程小施同学12 小时前
区块链论文速读 CCF A--VLDB 2025 (1) 附pdf下载
pdf·区块链
Java面试题总结2 天前
基于 Java 的 PDF 文本水印实现方案(iText7 示例)
java·python·pdf
傻啦嘿哟2 天前
Python操作PDF页面详解:删除指定页的完整方案
开发语言·python·pdf
m5655bj3 天前
使用 C# 修改 PDF 页面尺寸
java·pdf·c#
geovindu3 天前
python: 简单提取PDF文档内文字
开发语言·python·pdf
m0_694845573 天前
HandBrake 是什么?视频转码工具使用与服务器部署教程
服务器·前端·pdf·开源·github·音视频
yivifu3 天前
使用PyMuPdf删除PDF文档中的水印
pdf·pymupdf·去水印
ComPDFKit3 天前
ComPDF的产品升级:从工具包到PDF服务
pdf
占疏4 天前
pdf文件解析
pdf