1. Общие сведения
1.1 Наименование проекта
Программа для автоматической обрезки и объединения PDF-файлов
1.2 Цель разработки
Создание автоматизированного решения для обработки PDF-файлов с адресными ярлыками, включающего:
Извлечение PDF-файлов из ZIP-архивов
Автоматическую обрезку заданной области
Объединение обработанных файлов в один PDF-документ
Реализацию механизма отслеживания новых файлов
2. Технические требования
2.1 Входные данные
Папка для мониторинга, содержащая ZIP-архив
ZIP-архив содержит один или несколько PDF-файлов формата А4
Имена целевых PDF-файлов содержат подстроку: *****_адресный_ярлык_150x100
2.2 Требования к обработке файлов
Для каждого целевого PDF-файла:
Обрезка области: вырезать прямоугольную область размером 100×150 мм
Координаты области фиксированы для всех файлов
Область располагается в одном и том же месте на странице
Сохранить исходное качество изображения
Обработка страниц:
Обрабатывается только первая страница каждого PDF-файла
Остальные страницы игнорируются
2.3 Результат работы
Один объединенный PDF-файл, содержащий все обрезанные страницы
Порядок страниц соответствует порядку обработки файлов
Имя результирующего файла: объединенные_ярлыки_<дата_время>.pdf
Сохранение в ту же папку или указанную директорию
2.4 Автоматизация
Программа должна отслеживать появление новых ZIP-архивов в указанной папке
Возможность работы в двух режимах:
Автоматический (постоянный мониторинг)
Ручной (однократный запуск для обработки существующих файлов)
2.5 Обработка ошибок
Корректная обработка битых или некорректных файлов
Логирование всех операций и ошибок
Сохранение статуса обработки для предотвращения повторной обработки
3. Технические спецификации
3.1 Системные требования
ОС: Windows 10/11, Linux, macOS
Python: версия 3.8+
Зависимости:
PyMuPDF (fitz)
Pillow
watchdog (для мониторинга файлов)
3.2 Параметры обрезки
Размер области: 100×150 мм
Координаты области: должны быть определены на этапе разработки
Единицы измерения: миллиметры (с конвертацией в пункты: 1 мм = 2.83464567 пунктов)
3.3 Архитектура решения
text
PDF Processor Architecture:
1. File Monitor → 2. ZIP Extractor → 3. PDF Filter →
4. Image Cropper → 5. PDF Merger → 6. Output Generator
4. Функциональные требования
4.1 Основные функции
Мониторинг директории
Отслеживание появления новых ZIP-файлов
Поддержка рекурсивного поиска
Исключение уже обработанных файлов
Обработка ZIP-архивов
Распаковка в временную директорию
Фильтрация PDF-файлов по шаблону имени
Очистка временных файлов после обработки
Обработка PDF-файлов
Проверка формата и целостности файла
Обрезка заданной области на первой странице
Контроль качества выходного изображения
Объединение результатов
Создание единого PDF-документа
Сохранение порядка страниц
Оптимизация размера выходного файла
Управление состоянием
Ведение лог-файла
Сохранение истории обработки
Возможность возобновления после сбоя
4.2 Дополнительные функции
Конфигурация через файл
Настройка путей
Параметры обрезки
Правила фильтрации файлов
Интерфейс пользователя
Консольный интерфейс с прогресс-баром
Опциональный графический интерфейс
Уведомления
О завершении обработки
Об ошибках
Статистика обработки
5. Требования к качеству
5.1 Надежность
Устойчивость к некорректным входным данным
Корректное освобождение ресурсов
Минимальное потребление памяти
5.2 Производительность
Обработка не менее 100 файлов в минуту
Поддержка многопоточной обработки
Эффективная работа с большими файлами
5.3 Удобство использования
Простая установка и настройка
Понятные сообщения об ошибках
Детальное логирование
6. Этапы разработки
Этап 1: Прототип
Базовая функциональность обрезки PDF
Объединение файлов
Консольный интерфейс
Этап 2: Автоматизация
Мониторинг директории
Автоматическая обработка новых файлов
Система логов
Этап 3: Оптимизация
Многопоточная обработка
Оптимизация использования памяти
Обработка ошибок
Опубликован 08.02.2026 в 00:04