PDF-парсер

Описание

Программа, которая запускается из командной строки и извлекает данные из PDF-квитанций в Excel.

Иллюстрация работы программы

Иллюстрация работы программы

Задача

  1. У меня есть файл для проверки квитанций за коммунальные услуги ([1] - в файлах ниже) - правильно ли мне начисляют суммы.

  2. Для этого из каждой квитанции мне нужны одинаковые данные: объем потребления, тариф, сумма. НО: все квитанции приходят от разных компаний и имеют разный формат.

→ Как же сделать так, чтобы не обрабатывать каждую квитанцию вручную, а получить нужные значения одним списком?

Spoiler: Python.

Пожелания:

  • Одновременное извлечение данных из всех PDF-квитанций в одной папке.
  • Получить данные в готовом формате для вставки в таблицу проверки.
Полученные данные используются для проверки

Полученные данные используются для проверки


Решение

Создание программы.
Реализация через код на Python.

Результат

  • Единая структурированная таблица для дальнейшей проверки начислений
  • Приятный трепет в груди - это ощущение, когда одной строкой кода на глазах происходит трансформация

Как это работает

Для пользователя

  1. В одной папке сохраняются все квитанции за месяц.
  2. В командной строке запускается программа.
  3. Открывается Excel файл с объединенными данными.

Логика работы программы

  1. Загружаются PDF-файлы из папки
  2. Определяется тип поставщика (электроэнергия, вода, ТКО и т.д.)
  3. Извлекаются ключевые значения:
    • объём потребления
    • тариф
    • сумма начислений
  4. Данные приводятся к единому формату
  5. Формируется итоговый файл:
    • CSV
    • Excel

Логика Работы программы

Типы квитанций:

  • Электроэнергия
  • Водоснабжение
  • ТКО (вывоз мусора)
  • Капитальный ремонт
  • Общедомовые услуги

Сложности и решения

Основная сложность — различие форматов PDF у разных поставщиков.
Т.е. решение пока не унифицировано - нельзя взять любую квитанцию и получить из нее данные. Под каждый новый вид квитанции код нужно адаптировать.

На будущее — Идеи развития

  • автоматизировать сохранение квитанций в папку (через API сайтов поставщиков или приложения ЖКХ)
  • соединить с файлом проверки (отправка полученных данных сразу в инструмент проверки напрямую, без выгрузки в отдельный файл Excel)

Инструменты

  • Python — основная логика
  • pdfplumber (библиотека) — извлечение данных из PDF
  • pandas (библиотека) — обработка таблиц
  • Excel

Файлы