Advertisement
Guest User

Untitled

a guest
Oct 23rd, 2019
147
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.35 KB | None | 0 0
  1. import fitz
  2. import tkinter as tk
  3. from tkinter import *
  4. from tkinter import filedialog as fd
  5. import logging
  6.  
  7.  
  8. def main():
  9.     # логирование
  10.     FORMAT = '[%(levelname)s] %(message)s'
  11.     file_handler = logging.FileHandler('found.log', 'w', encoding='utf-8')
  12.     file_handler.setFormatter(logging.Formatter(FORMAT))
  13.     logging.basicConfig(level=logging.DEBUG, format=FORMAT)
  14.     logging.getLogger().addHandler(file_handler)
  15.  
  16.     root = Tk()  # главное окно
  17.  
  18.     # переменные для текстовых полей
  19.     filename = StringVar()
  20.     search = StringVar()
  21.     searchres = StringVar()
  22.  
  23.     # открытие файла
  24.     def openpdf():
  25.         filename1 = fd.askopenfilename()
  26.         filename.set(filename1)
  27.  
  28.  
  29.     # поиск
  30.     def searchpdf():
  31.         flag = False
  32.         terms = search.get().split(',')
  33.         pdf_document = fitz.open(filename.get())
  34.         count = pdf_document.pageCount
  35.         for page in list(range(count)):
  36.             for term in terms:
  37.                 if term in pdf_document[page].getText().lower():
  38.                     logging.info(term + ': Found на странице ' + str(pdf_document[page].number))
  39.                     flag = True
  40.         if flag:
  41.             searchres.set('Совпадения найдены, отчет в файле found.log')
  42.         else:
  43.             searchres.set('Совпадения не найдены')
  44.    
  45.  
  46.     root.title("Поиск по PDF")
  47.     x = (root.winfo_screenwidth() - 300) / 2
  48.     y = (root.winfo_screenheight() - 200) / 2
  49.     root.wm_geometry("300x200+%d+%d" % (x, y))
  50.     l1 = Label(width=50, height=1, text="Выберите файл")
  51.     e1 = Entry(width=50, textvariable=filename)
  52.     b1 = tk.Button(root, text='Открыть PDF', command=openpdf, width=10)
  53.     l1.pack()
  54.     e1.pack()
  55.     b1.pack()
  56.     l2 = Label(width=50, height=1, text="Введите искомые слова через запятую:")
  57.     e2 = Entry(width=50, textvariable=search)
  58.     b2 = tk.Button(root, text='Поиск по PDF', command=searchpdf, width=10)
  59.     l3 = Label(width=50, height=1, text="Результаты поиска:")
  60.     e3 = Entry(width=50, textvariable=searchres)
  61.     l2.pack()
  62.     e2.pack()
  63.     b2.pack()
  64.     l3.pack()
  65.     e3.pack()  
  66.  
  67.  
  68.     root.mainloop()
  69.  
  70.  
  71. if __name__ == '__main__':
  72.     main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement