DEV Community

ahmdsanet
ahmdsanet

Posted on

python pdf to jpeg GUI

from tkinter import *
from tkinter import ttk
from tkinter import filedialog
import pypdfium2 as pdfium

root = Tk()
root.title('King PDF')
root.geometry('500x300+600+300')
root.config(bg='#F4F6F6')
root.resizable(0,0)
root.columnconfigure(0,weight=1)#set all content in center.

def save_file():
global save_image
save_image = filedialog.asksaveasfilename(filetypes=[('JPEG files','*.JPEG')])

def select_file():
global openpdf
openpdf = filedialog.askopenfilenames(initialdir = "/",
filetypes = [('pdf files','*.pdf')])

def PDFTOJPEG():
pdf = pdfium.PdfDocument(save_file)
n_pages = len(pdf)
for page_number in range(n_pages):
page = pdf.get_page(page_number)
pil_image = page.render_topil(

scale = 300/72, # 600dpi resolution
greyscale=False,
optimise_mode=pdfium.OptimiseMode.NONE,
)
pil_image.save(f"image_{page_number+1}.JPEG", quality=100)

Knowing that I want combo boxes to change quality as well like this

scale = 300/72, # 600dpi resolution

scale = 600/72, # 600dpi resolution

scale = 900/72, # 600dpi resolution

scale = 1000/72, # 600dpi resolution

btn select_file

btnopenpdf = Button(root, text='Choose File',activebackground='#2b99be',borderwidth=1,width=15,bd=0,font=('Arial' ,15 , 'bold'),bg = '#248aa2',fg = '#2b99be',cursor='hand2',command=select_file)
btnopenpdf.place(x=270, y=150)
btnopenpdf.config(background='#abdbe3')

btnsavepdf = Button(root, text='Choose Save',activebackground='#CA6F1E',borderwidth=1,width=15,bd=0,font=('Arial' ,15 , 'bold'),bg = '#248aa2',fg = '#CA6F1E',cursor='hand2',command=save_file)
btnsavepdf.place(x=90, y=150)
btnsavepdf.config(background='#eab676')

btnConvert

btnConvert = Button(root, text='Start Convert',activebackground='#16A085',borderwidth=1,width=15,bd=0,font=('Arial' ,15 , 'bold'),bg = '#248aa2',fg = '#16A085',cursor='hand2',command=PDFTOJPEG)
btnConvert.place(x=170, y=200)
btnConvert.config(background='#9FE2BF')

root.mainloop()

Top comments (0)