diff --git a/pyq.py b/pyq.py new file mode 100644 index 0000000..3cd018b --- /dev/null +++ b/pyq.py @@ -0,0 +1,97 @@ +from tkinter import * +import tkinter as tk +from tkinter import ttk +from tkinter.filedialog import askopenfile, asksaveasfile +from PIL import Image, ImageTk +import pytesseract as tes +#from fpdf import FPDF +import os +import pdfkit + + +#PDF +path_wkhtmltopdf = r'C:\Program Files\wkhtmltopdf\bin\wkhtmltopdf.exe' +config = pdfkit.configuration(wkhtmltopdf=path_wkhtmltopdf) + +#TESSERACT +tes.pytesseract.tesseract_cmd = r'C:\Program Files\Tesseract-OCR\tesseract.exe' + +#TKINTER +root = Tk() + +#TKINTER SETTINGS +content = ttk.Frame(root, padding=(3,3,12,12)) +frame = ttk.Frame(content, borderwidth=5, relief="ridge", width=200, height=200) + +clear = ttk.Button(content, text="Clear textbox",command=lambda:clearTextInput()) +ok = ttk.Button(content, text="Okay") +save = ttk.Button(content, text="Save",command=lambda:save_file()) +convert = ttk.Button(content,text="Convert to PDF",command=lambda:convert_to_pdf()) +#btn for image +browse_text = StringVar() +browse_btn = ttk.Button(content,textvariable=browse_text,command=lambda:open_file()) +browse_text.set("Browse") + + +text_box = Text(content,width=50,height=12) + +def clearTextInput(): + text_box.delete("1.0","end") + +def open_file(): + browse_text.set("loading...") + file = askopenfile(parent=root,mode='rb',title="Choose a file",filetype=[("Image file","*.png *.jpg *.jpeg")]) + if file: + # create a canvas to show image on + canvas_for_image = Canvas(frame, bg='green', height=200, width=200, borderwidth=0, highlightthickness=0) + canvas_for_image.grid(row=0, column=0, sticky='nesw', padx=0, pady=0) + + # create image from image location resize it to 200X200 and put in on canvas + image = Image.open(file) + canvas_for_image.image = ImageTk.PhotoImage(image.resize((200, 200), Image.ANTIALIAS)) + canvas_for_image.create_image(0, 0, image=canvas_for_image.image, anchor='nw') + + #text box + img_content = tes.image_to_string(image) + text_box.insert(1.0, img_content) + browse_text.set("Browse") + print(img_content) + + +def save_file(): + filename = asksaveasfile(mode='w',defaultextension="*.txt") + if filename is None: + return + text2save = str(text_box.get(1.0,END)) + filename.write(text2save) + filename.close() + + +def convert_to_pdf(): + f = askopenfile(mode='r',title="Choose a file",filetype=[("Text file (*.txt)","*.txt")]) + pdfkit.from_file(f,'out.pdf') + os.startfile('out.pdf') + +# CONTENT REPOSITION + +content.grid(column=0, row=0, sticky=(N, S, E, W)) +frame.grid(column=0, row=0, columnspan=3, rowspan=2, sticky=(N, S, E, W)) +browse_btn.grid(column=1, row=3) +clear.grid(column=2,row=3) +save.grid(column=3, row=3) +convert.grid(column=4,row=3) + + +text_box.grid(column=3, row=0, columnspan=2, sticky=(N, W), padx=5) + + +root.columnconfigure(0, weight=1) +root.rowconfigure(0, weight=1) +content.columnconfigure(0, weight=3) +content.columnconfigure(1, weight=3) +content.columnconfigure(2, weight=3) +content.columnconfigure(3, weight=1) +content.columnconfigure(4, weight=1) +content.rowconfigure(1, weight=1) + +root.mainloop() \ No newline at end of file