반응형
우선 PyPDF2 라이브러리 설치가 필요합니다.
pip install pypdf2
app.py 파일을 하나 생성하여 아래와 같이 입력합니다. 여기에 로고로 쓸 images.png파일이 필요한데, 인터넷에서 적당한 파일을 다운받으시거나 첨부 파일을 사용하시기 바랍니다.
import tkinter as tk
import PyPDF2
from PIL import Image, ImageTk
from tkinter.filedialog import askopenfile
root = tk.Tk()
canvas = tk.Canvas(root, width=600, height=300)
canvas.grid(columnspan=3, rowspan=3)
# logo
image = Image.open('images.png')
logo = ImageTk.PhotoImage(image)
logo_label = tk.Label(root, image=logo)
# logo_label.image = logo
logo_label.grid(column=1, row=0)
# instructions
instructions = tk.Label(root, text="Select a PDF file on your computer to extract all its text", font="Raleway")
instructions.grid(columnspan=3, column=0, row=1)
def open_file():
# print("is this working??")
browse_text.set("loading...")
file = askopenfile(parent=root, mode='rb', title="Choose a file", filetype=[("Pdf file", "*.pdf")])
if file:
read_pdf = PyPDF2.PdfFileReader(file)
page = read_pdf.getPage(0)
page_content = page.extractText()
#text box
text_box = tk.Text(root, height=10, width=50, padx=15, pady=15)
text_box.insert(1.0, page_content)
text_box.tag_configure("center", justify="center")
text_box.tag_add("center", 1.0, "end")
text_box.grid(column=1, row=3)
browse_text.set("Browse")
# browse button
browse_text = tk.StringVar()
browse_btn = tk.Button(root, textvariable=browse_text, command=lambda:open_file(), font="Raleway", bg="#20bebe", fg="white", height=2, width=15)
browse_text.set("Browse")
browse_btn.grid(column=1, row=2)
# 하단 갭 생성
canvas = tk.Canvas(root, width=600, height=250)
canvas.grid(columnspan=3)
root.mainloop()
<결과>
Browse 버튼을 누르면 파일탐색기가 실행되고, pdf 파일을 누르면 내용을 불러옵니다. 단, 아직은 텍스트로 작성된 pdf만 불러와집니다.
반응형
'Programming > Python_Etc' 카테고리의 다른 글
파이썬 kivy 시작하기 2 - kv 파일 분리 (0) | 2021.09.24 |
---|---|
파이썬 kivy 시작하기 1 - Kivy란? (0) | 2021.09.24 |
파이선 PySimpleGUI 예제 (0) | 2021.09.22 |
파이썬 주피터 노트북 Extension 설치 (0) | 2021.09.15 |
Python folium을 이용한 지도 불러오기 / 마커 표시하기 (0) | 2021.09.05 |