Недавно я столкнулся с необходимостью конвертировать мои личные PDF-файлы в текст. Хотя для этой задачи было доступно множество существующих конвертеров PDF в текст, я не мог избавиться от чувства беспокойства по поводу загрузки моих личных документов на неизвестные серверы. Кто знает, что с ними может случиться и насколько они на самом деле в безопасности?
Я решил создать свой собственный конвертер PDF в текст (демо). С самого начала я знал, что это возможно, используя только Python.
Начиная
До этого, признаюсь, я не особо разбираюсь во фронтенд-разработке. Итак, я решил использовать PyWebIO, избавив меня от необходимости иметь дело с HTML и CSS.
Основные зависимости
Для начала я создал новый каталог проекта с именем pypdf2txt
и инициализировал его с помощью Git и Poetry (моя виртуальная среда и менеджер пакетов для Python).
См. Как установить Poetry здесь. Альтернативно, вы всегда можете использовать старые добрые Пип и Венв.
Я включил необходимые зависимости — pdfminer.six для работы с PDF-файлами и pywebio для сборки веб-приложения.
Наконец, я создал файл main.py
для хранения основных функций конвертера.
mkdir pypdf2txt cd pypdf2txt git init poetry init poetry add pdfminer.six pywebio touch main.py
Необязательно: зависимости разработчиков
Я добавил autopep8
и ruff
(вместо flake8
) в качестве зависимостей разработки с помощью Poetry. Это поможет с автоматическим форматированием кода и линтингом:
poetry add -D autopep8 ruff
Преобразование PDF в текст
ПРИМЕЧАНИЕ. На протяжении всего этого пошагового руководства нам предстоит работать только с одним main.py
.
Добавление описания сайта
Давайте начнем с чего-нибудь более простого, не так ли? Чтобы отобразить любой вывод в браузере, мы можем просто использовать модуль pywebio.output
(ссылка).
# main.py from functools import partial from io import BytesIO, StringIO from pathlib import Path from pdfminer.high_level import extract_text_to_fp from pywebio…