-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathPDF_merger.py
More file actions
80 lines (63 loc) · 3.18 KB
/
PDF_merger.py
File metadata and controls
80 lines (63 loc) · 3.18 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
import PyPDF2 # type: ignore
import os
from tkinter import filedialog,messagebox
import customtkinter as tk # type: ignore
def merge():
def merge_pdfs(pdf_directory_path, merged_pdf_file_name,save_location):
try:
os.chdir(save_location)
if not merged_pdf_file_name.endswith(".pdf"):
merged_pdf_file_name += ".pdf"
merger = PyPDF2.PdfMerger()
for file in os.listdir(pdf_directory_path):
if file.lower().endswith(".pdf"):
file_path = os.path.join(pdf_directory_path, file)
if os.path.exists(file_path):
merger.append(file_path)
else:
messagebox.showinfo("Message",f"Warning: Skipping non-existent file: {file_path}")
merger.write(merged_pdf_file_name)
merger.close()
messagebox.showinfo("Success",f"Pdfs are merged into:{merged_pdf_file_name}")
except Exception as e:
messagebox.showerror("Error", f"An error occurred:\n{e}")
def browse_directory():
pdf_directory_path = filedialog.askdirectory()
directory_entry.delete(0, tk.END)
directory_entry.insert(0, pdf_directory_path)
def save_browse():
save_path = filedialog.askdirectory()
save_entry.delete(0,tk.END)
save_entry.insert(0,save_path)
def merge_pdfs_gui():
pdf_directory_path = directory_entry.get()
merged_pdf_file_name = filename_entry.get()
save_location = save_entry.get()
merge_pdfs(pdf_directory_path, merged_pdf_file_name,save_location)
root = tk.CTk()
root.resizable(False,False)
screen_width = root.winfo_screenwidth()
screen_height = root.winfo_screenheight()
x_coordinate = (screen_width - root.winfo_reqwidth()) / 2
y_coordinate = (screen_height - root.winfo_reqheight()) / 2
root.geometry("+%d+%d" % (x_coordinate, y_coordinate))
root.title("PDF Merger")
directory_label = tk.CTkLabel(root, text="PDF Directory:")
filename_label = tk.CTkLabel(root, text="Output PDF Filename:")
save_label = tk.CTkLabel(root,text="Pdf save location")
directory_entry = tk.CTkEntry(root, width=200)
filename_entry = tk.CTkEntry(root, width=200)
save_entry = tk.CTkEntry(root,width=200)
save_br_butt = tk.CTkButton(root,text="Browse",command= save_browse)
browse_button = tk.CTkButton(root, text="Browse", command=browse_directory)
merge_button = tk.CTkButton(root, text="Merge PDFs", command=merge_pdfs_gui)
directory_label.grid(row=0, column=0, padx=10, pady=5, sticky=tk.W)
filename_label.grid(row=1, column=0, padx=10, pady=5, sticky=tk.W)
save_label.grid(row=2,column=0,sticky=tk.W,padx=10)
directory_entry.grid(row=0, column=1, padx=10, pady=5, columnspan=2)
filename_entry.grid(row=1, column=1, padx=10, pady=5, columnspan=2)
save_entry.grid(row=2,column=1,padx=10,pady=5,columnspan=2)
browse_button.grid(row=0, column=3, pady=5)
save_br_butt.grid(row=2,column=3,padx =10)
merge_button.grid(row=3, column=1, columnspan=2, pady=10)
root.mainloop()