这是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的界面了
出现的问题:
module 'PySimpleGUI' has no attribute 'Text'
module 'PySimpleGUI' has no attribute 'Text'
如果出现上面的问题:卸载PySimpleGUI
python -m pip uninstall PySimpleGUI
python -m pip cache purge
然后重新安装:(必须按照下面的命令安装)
python -m pip install --upgrade --extra-index-url https://PySimpleGUI.net/install PySimpleGUI
可以解决上述问题。
欢迎点赞收藏 ,加关注
本文介绍了如何通过Python编程,利用PyPDF2和PySimpleGUI库创建一个GUI界面,实现批量选择并合并多个PDF文件的功能。作者详细展示了代码实现过程和用户交互流程。
&spm=1001.2101.3001.5002&articleId=137474166&d=1&t=3&u=ea4cbb2dda0545ad9e0221ab5b697c88)
803

被折叠的 条评论
为什么被折叠?



