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

相关推荐
2501_930707781 小时前
使用C#代码在 PDF 文档中创建交互操作
pdf·c#·交互
Metaphor6921 小时前
Python 自动化办公:如何轻松在 PDF 中导入与导出表单数据
python·pdf·自动化
weixin_4487717214 小时前
使用Aspose给PDF添加水印
java·pdf
魔都吴所谓20 小时前
【我的开源】Python实现一个离线 PDF 工具箱:架构、骑缝章与踩坑记录
python·pdf·开源
凯程序猿1号20 小时前
SafeDRM 的视频和 PDF 如何做跨设备交付验证?
pdf·电脑
学术 学术 Fun21 小时前
没有 Visio 怎样打开 VSDX?从查看、审阅到导出 PDF
pdf
五花马印务1 天前
个人书稿交付印刷前,文件格式要规范什么?(Word/PDF/ 字体 / 出血)
pdf·个人出书
指针向南1 天前
PDF转长图用什么?3种方法实测(2026)
图像处理·人工智能·计算机视觉·pdf
GlobalTradercrb2 天前
独立站SEO先写博客还是先优化产品页?看站点阶段
数据库·人工智能·google·pdf·go·seo
热爱生活的五柒3 天前
zotero能导入已经下载好的pdf文件嘛,并且点击条目时,能直接看到下载的pdf文件嘛,我还希望能在里面做笔记
笔记·pdf