Skip to content

Repository files navigation

Описание

PDF файлы являются универсальным средством работы с документами, которое обладает следующими преимуществами:

  • возможность цифровой подписи и шифрования содержимого
  • встроенные средства table-of-contents
  • поддержка графики
  • кроссплатформенность

Однако, при работе с PDF файлами, в особенности с большими файлами, возникают следующие проблемы:

  • отсутствие удобной навигации по документу
  • документы являются отсканированными, нет возможности выделить текст

Данное решение позволяет структурировать и провести анализ содержимого PDF файла, выделить содержание и добавить содержание в документ для удобной навигации.

Решение

Решение представлено в виде backend-части с Telegram-ботом для удобного взаимодействия с системой и серверной части, на которой обрабатывается сам PDF файл. Бизнес Модель

Решение разбито на обработку разных подслучаев, когда файл является отсканированным, есть ли в нем уже содержание или нет: Решение

Запуск

Telegram-bot

Чтобы запустить у себя, нужно создать бота в телеграм через BotFather. Записать его токен. Создать у себя переменную окружения TOKEN_API_BOT_FH и записать в неё токен полученный от BotFather. Запустить main.py у себя для отладки, или если хотите чтоб бот работал долго в фоне, то (установив у себя докер), запустить образ, собранный с репозитория на GitHub, командой:

 docker run --pull always -e TOKEN_API_BOT_FH=$TOKEN_API_BOT_FH -d evgeny105/fintech_project

Эта команда автоматически проверит, не обновился ли образ на DockerHub (обновление происходит после каждого push в GitHub) и запустит образ в фоне.

Проверить, запущен ли образ можно командой docker ps:

CONTAINER ID   IMAGE                       COMMAND            CREATED          STATUS          PORTS     NAMES
9652e8a353b4   evgeny105/fintech_project   "python main.py"   36 seconds ago   Up 33 seconds             sweet_mestorf

Логи контейнера можно посмотреть с помощью docker logs 9652e8a353b4

Остановить контейнер можно командой docker stop 9652e8a353b4

Серверная часть

Для запуска серверной части необходимо иметь установленным в системе tesseract, библиотеки для русского языка, а также зависимости:

pip install -r server_requirements.txt

Серверная часть htttp-server.py осуществляет прием файла PDF, поиск в нем содержания и добавление найденного содрежания в файл с возможностью навигации.

python htttp_server.py

About

Проект по добавлению ToC в PDF файл в рамках программы MLPro

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages