PDF Text Extractor

PDF Text Extractor

Описание

PDF Text Extractor е прост графичен интерфейс, написан на Python, който позволява на потребителите да извличат текст от PDF файлове, да търсят ключови думи в текста и да запазват извлечения текст в текстови файлове.

Какво може да прави програмата

  1. Извличане на текст от PDF файлове: Можете да изберете PDF файл, след което програмата ще извлече текста от него и ще го покаже в графичния интерфейс.
  2. Търсене на ключови думи: Можете да въведете ключова дума и да я потърсите в извлечения текст на PDF файла. Програмата ще ви покаже на коя страница и на кой ред е намерена ключовата дума.
  3. Запазване на текст във файл: Можете да запазвате извлечения текст в текстов файл след извличането му от PDF файла.

Предпоставки

Инсталиран Python – Ако нямате Python инсталиран на вашия компютър, можете да го изтеглите и инсталирате от официалния уебсайт на Python.

Инсталирани необходими библиотеки PyPDF2 и PyMuPDF– Ако ги нямате, отворете командния ред или терминала и изпълнете следната команда, за да инсталирате библиотеките PyPDF2 и PyMuPDF (този модул трябва да бъде инсталиран отделно):

pip install PyPDF2 PyMuPDF

Стартиране

Копирайте кода, който е предоставен по долу, и го запазете в текстов файл с разширение ".py.

python ваш_файл.py

# Author     : Fedya Serafiev
# Version    : 1.2
# License    : MIT
# Copyright  : Fedya Serafiev (2023)
# Contact    : https://urocibg.eu/

import PyPDF2
import tkinter as tk
from tkinter import filedialog
from tkinter import scrolledtext

def extract_text_from_pdf(pdf_path):
    try:
        with open(pdf_path, "rb") as pdf_file:
            pdf_reader = PyPDF2.PdfReader(pdf_file)
            text = []
            for page in pdf_reader.pages:
                text.append(page.extract_text())
            return text
    except Exception as e:
        return str(e)

def search_text_in_pdf():
    keyword = search_entry.get()
    if keyword:
        text_area.delete(1.0, tk.END)
        for i, pdf_file in enumerate(pdf_files):
            extracted_text = extract_text_from_pdf(pdf_file)
            text_area.insert(tk.END, f"File {i + 1}:\n")
            for page_num, text in enumerate(extracted_text, start=1):
                if keyword in text:
                    text_area.insert(tk.END, f"  - Found on Page {page_num}\n")
    else:
        text_area.delete(1.0, tk.END)
        text_area.insert(tk.END, "Моля, въведете ключова дума за търсене.")

def open_file_dialog():
    file_path = filedialog.askopenfilename(filetypes=[("PDF files", "*.pdf")])
    if file_path:
        extracted_text = extract_text_from_pdf(file_path)
        if extracted_text:
            text_area.delete(1.0, tk.END)
            text_area.insert(tk.END, "Извлечен текст:\n")
            for page_num, text in enumerate(extracted_text, start=1):
                text_area.insert(tk.END, f"Page {page_num}:\n")
                text_area.insert(tk.END, text)
        else:
            text_area.delete(1.0, tk.END)
            text_area.insert(tk.END, "Неуспешно извличане на текст от PDF файла.")

def save_to_file():
    text_to_save = text_area.get(1.0, tk.END)
    if text_to_save:
        file_path = filedialog.asksaveasfilename(defaultextension=".txt", filetypes=[("Text files", "*.txt")])
        if file_path:
            with open(file_path, "w", encoding="utf-8") as text_file:
                text_file.write(text_to_save)
                text_file.close()

# Създаване на основното прозорче
root = tk.Tk()
root.title("PDF Text Extractor")

# Бутон за избор на PDF файл
open_button = tk.Button(root, text="Избери PDF файл", command=open_file_dialog)
open_button.pack()

# Бутон за запазване на текста във файл
save_button = tk.Button(root, text="Запиши във файл", command=save_to_file)
save_button.pack()

# Поле за извлечен текст
text_area = scrolledtext.ScrolledText(root, wrap=tk.WORD, width=80, height=20)
text_area.pack()

# Поле за въвеждане на ключова дума
search_label = tk.Label(root, text="Търси ключова дума:")
search_label.pack()
search_entry = tk.Entry(root)
search_entry.pack()

# Бутон за търсене
search_button = tk.Button(root, text="Търси", command=search_text_in_pdf)
search_button.pack()

# Глобален списък за пазене на избраните PDF файлове
pdf_files = []

# Стартиране на главната графична петък
root.mainloop()

След това стартирайте скрипта чрез командата:

python ваш_файл.py

Или просто кликнете, два пъти на него.

Как да използвате програмата:

  1. Избор на PDF файл:
    • Щракнете върху бутона "Избери PDF файл" за да изберете PDF файл от вашия компютър.
    • Избраният PDF файл ще се зареди и текстът от него ще се покаже в текстовото поле.
  2. Търсене на ключови думи:
    • Въведете ключова дума в полето за търсене "Търси ключова дума".
    • Щракнете върху бутона "Търси" за да стартирате търсенето.
    • Ако ключовата дума се среща в текста, програмата ще покаже на коя страница и на кой ред е намерена.
  3. Запазване на текст във файл:
    • След извличането на текст от PDF файла, можете да го запазите в текстов файл.
    • Щракнете върху бутона "Запиши във файл" и изберете къде и с какво име да запазите файла.

Забележки:

  • Програмата поддържа PDF файлове и може да извлича текст от тях. За да използвате търсенето, трябва да въведете ключова дума и да щракнете върху бутона "Търси".
  • Записването на текст във файл е опция след извличане на текста от PDF файла.

Федя Серафиев

Федя Серафиев

Федя Серафиев e собственик на уебсайта urocibg.eu. Той намира удовлетворение в това да помага на хората да решават и най-сложните технически проблеми. Сегашната му цел е да пише лесни за следване статии, така че подобни проблеми изобщо да не възникват.

Благодарим ви за прочитането на статията! Ако намерихте информацията за полезна, можете да дарите посредством бутоните по-долу: