Генератор PDF документов из CSV/JSON данных и HTML шаблонов с поддержкой кириллицы.
- 📁 Чтение CSV и JSON файлов из директории
/data - 📄 Использование HTML шаблонов из директории
/templates - 🔤 Полная поддержка кириллицы (шрифт Arial/Helvetica)
- 💻 Работа на Windows и macOS
- 🎨 Красивые PDF документы с профессиональным дизайном
- 🖱️ Интерактивное меню выбора файлов и шаблонов
- 📱 Автоматическое открытие PDF в системной программе
- 🔄 Непрерывная работа - возможность генерировать несколько PDF за одну сессию
- 🚪 Удобный выход из программы через главное меню
- 🧾 Генератор чеков - создание счетов-фактур и заказов
- 📊 Генератор отчетов - создание отчетов по реализации услуг
- 👥 Работа с компаниями и сотрудниками - автоматическое назначение ответственных
- 📋 Просмотр загруженных данных - просмотр всех CSV и JSON файлов
pdf_generator/
├── data/ # CSV и JSON файлы с данными
│ ├── invoices.csv # Счета-фактуры
│ ├── customers.csv # Клиенты
│ ├── products.csv # Товары/услуги
│ ├── employees.csv # Сотрудники
│ ├── transactions.json # Транзакции
│ ├── services.json # Услуги
│ ├── staff.json # Персонал
│ └── clients.json # Клиенты
├── templates/ # HTML шаблоны
│ ├── invoice_simple.html # Упрощенная форма счета
│ ├── order_detailed.html # Детальная форма заказа
│ └── product_catalog.html # Каталог товаров (отчет)
├── output/ # Сгенерированные PDF файлы
├── pdf_generator.py # Основной скрипт
├── requirements.txt # Зависимости Python
└── README.md # Документация
Примечание: Папка
data/не включена в репозиторий (добавлена в.gitignore). Необходимо создать её самостоятельно и загрузить ваши CSV/JSON файлы.
-
Клонируйте репозиторий или скачайте файлы:
git clone <repository-url> cd pdf_generator
-
Создайте виртуальное окружение (рекомендуется):
python -m venv venv # Windows venv\Scripts\activate # macOS/Linux source venv/bin/activate
-
Установите зависимости:
pip install -r requirements.txt
-
Подготовьте данные:
- Создайте папку
data/если её нет - Загрузите ваши CSV или JSON файлы в папку
data/ - Убедитесь, что файлы имеют правильную структуру (см. раздел "Примеры данных")
- Создайте папку
-
Запустите скрипт:
python pdf_generator.py
-
Выберите действие в главном меню:
- Генератор чеков - создание счетов-фактур и заказов
- Выберите тип файлов (CSV или JSON)
- Выберите компанию
- Выберите форму (Упрощенная или Детальная)
- PDF будет создан и автоматически открыт
- Генератор отчетов - создание отчетов по реализации
- Выберите тип файлов (CSV или JSON)
- PDF будет создан с полным отчетом по всем услугам
- Загруженные отчеты - просмотр всех загруженных файлов
- Выберите тип файлов (CSV или JSON)
- Просмотрите содержимое файлов
- Выход - завершение работы программы
- Генератор чеков - создание счетов-фактур и заказов
==================================================
ГЛАВНОЕ МЕНЮ
==================================================
1. Генератор чеков
2. Генератор отчетов
3. Загруженные отчеты
4. Выход
==================================================
Счета-фактуры с полями: invoice_id, customer_name, amount, date, status, description
invoice_id,customer_name,amount,date,status,description
INV-001,ООО "ТехноПром",15000.00,2024-01-15,Оплачен,Разработка веб-сайта
INV-002,ИП Иванов И.И.,8500.50,2024-01-20,В ожидании,Консультационные услугиКлиенты с полями: customer_id, name, email, phone, address
Товары с полями: product_id, name, category, price, description, company
Сотрудники с полями: employee_id, name, position, department, salary, hire_date
Транзакции с информацией о заказах, клиентах и продавцах:
{
"transaction_id": "TXN-001",
"order_id": "ORD-001",
"customer": "ООО КиберТех",
"salesperson": "Белов Игорь Сергеевич",
"product": "Система кибербезопасности",
"amount": 22000.00,
"status": "completed",
"transaction_date": "2024-03-01"
}Услуги с категориями и описаниями
Персонал с должностями и отделами
Клиенты с контактной информацией
Простой счет-фактура с:
- Информацией о компании
- Данными клиента
- Списком товаров/услуг
- Итоговой суммой
- Информацией об ответственном сотруднике
Детальный заказ с:
- Подробной информацией о заказе
- Полными данными клиента (email, телефон, адрес)
- Таблицей товаров с количеством и ценами
- Подробной информацией об ответственном сотруднике
- Подсчетом итогов
Отчет по реализации услуг с:
- Полным списком всех выполненных проектов
- Категориями и ценами
- Описаниями услуг
- Сводной статистикой (количество проектов, средняя стоимость, общая сумма)
- Выбор типа файлов - CSV или JSON
- Автоматическое назначение сотрудников - система автоматически назначает ответственного сотрудника для каждой компании
- Два формата чеков:
- Упрощенная форма - минимальная информация
- Детальная форма - полная информация о клиенте и сотруднике
- Работа с CSV - загрузка данных из
invoices.csvиemployees.csv - Работа с JSON - загрузка данных из
transactions.jsonиstaff.json
- Отчеты из CSV - генерация отчета по данным из
products.csv - Отчеты из JSON - генерация отчета по данным из
transactions.jsonиservices.json - Сводная статистика - автоматический подсчет количества проектов, средней стоимости и общей суммы
- Категоризация - группировка проектов по категориям
Скрипт автоматически настраивает шрифты для корректного отображения кириллицы:
- macOS: Использует системные шрифты Arial или Helvetica
- Windows: Использует системные шрифты Arial или Calibri
- Fallback: Если системные шрифты не найдены, используется стандартный Helvetica
Скрипт автоматически определяет доступные шрифты при запуске.
- Python 3.7+
- reportlab>=4.0.0
- pandas>=2.2.0
- jinja2>=3.1.2
- ✅ Windows 10/11
- ✅ macOS 10.14+
- ✅ Linux (Ubuntu, CentOS, etc.)
pip install reportlab- Убедитесь, что файлы сохранены в кодировке UTF-8
- Скрипт автоматически настраивает шрифты для поддержки кириллицы
- Если текст отображается некорректно, проверьте доступность системных шрифтов
- На macOS может потребоваться разрешение на открытие файлов
- На Windows убедитесь, что установлена программа для просмотра PDF
- Проверьте настройки безопасности системы
pip install --upgrade pip
pip install -r requirements.txt- Убедитесь, что папка
data/существует в корне проекта - Проверьте, что файлы имеют правильные имена (invoices.csv, transactions.json и т.д.)
- Проверьте права доступа к файлам
Система автоматически назначает ответственного сотрудника для каждой компании:
- Для CSV файлов: сотрудники назначаются из
employees.csvпо кругу - Для JSON файлов: сотрудники назначаются из
staff.jsonна основе данных изtransactions.json
Система поддерживает два основных источника данных:
- CSV файлы (invoices.csv, customers.csv, products.csv, employees.csv)
- JSON файлы (transactions.json, services.json, staff.json, clients.json)
Детальные формы включают:
- Полную контактную информацию клиента (email, телефон, адрес)
- Подробную информацию об ответственном сотруднике (имя, должность, департамент)
- Детальную таблицу товаров с количеством и ценами
Данный функционал можно расширить следующими возможностями:
- Подключение к внешним API для получения данных
- Автоматическая синхронизация с CRM системами
- Интеграция с базами данных через REST API
- TXT файлы - поддержка текстовых файлов с данными
- DOC/DOCX файлы - чтение данных из документов Word
- XML файлы - поддержка XML формата данных
- Excel файлы - расширенная поддержка .xlsx файлов
- Больше HTML шаблонов
- Кастомные стили и темы
- Поддержка изображений в PDF
- Многостраничные документы
- Водяные знаки и штампы
- Финансовые отчеты по периодам
- Отчеты по сотрудникам
- Отчеты по клиентам
- Статистика по категориям
Данный функционал можно оформить в виде:
- PyQt/Tkinter - нативное приложение для Windows/macOS/Linux
- Electron - кроссплатформенное приложение на веб-технологиях
- Kivy - современный интерфейс с поддержкой сенсорных экранов
- Удобный интерфейс через мессенджер
- Загрузка файлов через Telegram
- Получение готовых PDF документов
- Интеграция с облачными хранилищами
- Flask/Django - веб-интерфейс для генерации PDF
- Streamlit - быстрый прототип веб-приложения
- FastAPI - высокопроизводительное API
- Развертывание на AWS/Azure/GCP
- Масштабируемость для больших объемов
- API для интеграции с другими системами
При возникновении проблем создайте issue в репозитории или обратитесь к разработчику.
- Добавлен генератор чеков с выбором компаний
- Добавлен генератор отчетов по реализации
- Добавлен просмотр загруженных данных
- Добавлена поддержка JSON файлов
- Добавлено автоматическое назначение сотрудников
- Добавлены две формы чеков (упрощенная и детальная)
- Улучшен интерфейс главного меню
- Базовая функциональность генерации PDF
- Поддержка CSV файлов
- Три базовых шаблона
- Поддержка кириллицы
MIT License - свободно используйте в учебных и коммерческих целях.