当前位置: 首页 > news >正文

合并pdf工具下载

csdn上面的下载链接如下
https://download.csdn.net/download/weixin_46756664/91434934?spm=1011.2124.3001.6210
百度网盘链接如下
链接: https://pan.baidu.com/s/1z4lpDGNxKQKW8Zi5A0pgew?pwd=2s9r 提取码: 2s9r
源码如下pdf_merger_app.py(deepseek自动生成的)


import os
import tkinter as tk
from tkinter import filedialog, messagebox, Listbox, Scrollbar, MULTIPLE, END
from PyPDF2 import PdfMergerclass PDFMergerApp:def __init__(self, root):self.root = rootself.root.title("PDF合并工具")self.root.geometry("600x500")# 文件列表self.file_list = []# 创建UI组件self.create_widgets()def create_widgets(self):# 添加文件按钮tk.Button(self.root, text="添加PDF文件", command=self.add_files, height=2, bg="#4CAF50", fg="white").pack(pady=10, fill=tk.X, padx=20)# 文件列表框list_frame = tk.Frame(self.root)list_frame.pack(pady=5, fill=tk.BOTH, expand=True, padx=20)scrollbar = Scrollbar(list_frame)scrollbar.pack(side=tk.RIGHT, fill=tk.Y)self.listbox = Listbox(list_frame, selectmode=MULTIPLE,yscrollcommand=scrollbar.set,height=10)self.listbox.pack(fill=tk.BOTH, expand=True)scrollbar.config(command=self.listbox.yview)# 移除按钮tk.Button(self.root, text="移除选中文件", command=self.remove_files, height=2, bg="#f44336", fg="white").pack(pady=5, fill=tk.X, padx=20)# 输出路径path_frame = tk.Frame(self.root)path_frame.pack(pady=10, fill=tk.X, padx=20)tk.Label(path_frame, text="输出路径:").pack(side=tk.LEFT)self.path_var = tk.StringVar()tk.Entry(path_frame, textvariable=self.path_var, width=40).pack(side=tk.LEFT, padx=5, fill=tk.X, expand=True)tk.Button(path_frame, text="浏览", command=self.select_output_path).pack(side=tk.RIGHT)# 输出文件名name_frame = tk.Frame(self.root)name_frame.pack(pady=5, fill=tk.X, padx=20)tk.Label(name_frame, text="输出文件名:").pack(side=tk.LEFT)self.name_var = tk.StringVar(value="merged.pdf")tk.Entry(name_frame, textvariable=self.name_var, width=40).pack(side=tk.LEFT, padx=5, fill=tk.X, expand=True)# 合并按钮tk.Button(self.root, text="合并PDF文件", command=self.merge_pdfs, height=2, bg="#2196F3", fg="white", font=("Arial", 12, "bold")).pack(pady=20, fill=tk.X, padx=20)def add_files(self):files = filedialog.askopenfilenames(title="选择PDF文件",filetypes=[("PDF文件", "*.pdf"), ("所有文件", "*.*")])if files:self.file_list.extend(files)self.update_listbox()def remove_files(self):selected = self.listbox.curselection()if selected:# 从后往前删除避免索引变化for index in sorted(selected, reverse=True):del self.file_list[index]self.update_listbox()def update_listbox(self):self.listbox.delete(0, END)for file in self.file_list:self.listbox.insert(END, os.path.basename(file))def select_output_path(self):path = filedialog.askdirectory(title="选择输出文件夹")if path:self.path_var.set(path)def merge_pdfs(self):if not self.file_list:messagebox.showwarning("警告", "请至少添加一个PDF文件!")returnoutput_path = self.path_var.get()if not output_path:messagebox.showwarning("警告", "请选择输出路径!")returnoutput_name = self.name_var.get().strip()if not output_name:messagebox.showwarning("警告", "请输入输出文件名!")returnif not output_name.lower().endswith('.pdf'):output_name += '.pdf'output_file = os.path.join(output_path, output_name)try:merger = PdfMerger()for pdf in self.file_list:merger.append(pdf)with open(output_file, 'wb') as f:merger.write(f)messagebox.showinfo("成功", f"PDF文件合并成功!\n保存位置: {output_file}")except Exception as e:messagebox.showerror("错误", f"合并过程中发生错误:\n{str(e)}")finally:merger.close()if __name__ == "__main__":root = tk.Tk()app = PDFMergerApp(root)root.mainloop()

需要安装的库如下

pip install PyPDF2 tkinter pyinstaller

生成exe脚本如下

pyinstaller --onefile --windowed --name="pdf合并" pdf_merger_app.py 

具体界面如下
在这里插入图片描述

http://www.lryc.cn/news/594914.html

相关文章:

  • Redis进阶--缓存
  • 如何使用python网络爬虫批量获取公共资源数据
  • 微软CEO Satya Nadella提出AI重构法则:从范式跃迁到社会盈余
  • 本地生活服务 app 同城信息发布系统搭建
  • delphi disqlite3 操作sqlite
  • C# 计算梯形面积和周长的程序(Program to calculate area and perimeter of Trapezium)
  • 在Windows Server 2012 R2中安装与配置IIS服务并部署mssql靶机教程
  • 【世纪龙科技】新能源汽车概论-汽车教学数字课程资源
  • 如何编写假设和约束---SRS软件需求规格指南系列
  • 概率论与数理统计(八)
  • 【跨国数仓迁移最佳实践2】MaxCompute SQL执行引擎对复杂类型处理全面重构,保障客户从BigQuery平滑迁移
  • java和ptyhon对比
  • C# Lambdab表达式 Var 类
  • PyQt5—QInputDialog 学习笔记
  • Iridium Certus 9704 卫星物联网开发套件
  • uniapp app pdf.js报错:Uncaught SyntaxError:Unexpected token ‘{‘
  • UART串口
  • 学习日志7.21
  • QT6 源,七章对话框与多窗体(6) 颜色对话框 QColorDialog :本类的属性,信号函数,静态成员函数,以及源代码
  • 使用AI把普通的条形柱状图,丰富成“好看高大上”的条形柱状图
  • Three.js实现银河流光粒子星空特效原理与实践
  • 基于ECharts的电商销售可视化系统(数据预测、WebsSocket实时聊天、ECharts图形化分析、缓存)
  • 【LINUX操作系统】搭建web网络服务器
  • Softhub软件下载站实战开发(二十):Docker部署全攻略
  • Golang在Web开发中的应用
  • 网络协议(四)网络层 路由协议
  • uni-app 开发小程序项目中实现前端图片压缩,实现方式
  • uniapp使用uni-ui怎么修改默认的css样式比如多选框及样式覆盖小程序/安卓/ios兼容问题
  • 云原生周刊:K8s 中的后量子密码学
  • 【iOS】锁[特殊字符]