Графический дизайнер создал веб-сервис для автоматической генерации макетов баннеров. Инструмент позволяет пользователям вводить текст и параметры, получая на выходе векторный PDF-файл, готовый к печати. Сервис поддерживает пакетную генерацию из CSV и интеграцию с типографиями.
Бэкенд проекта написан на Python 3.11 с использованием FastAPI и Pydantic, данные хранятся в SQLite. Для сборки PDF задействован Ghostscript 10, работающий в пуле процессов для предотвращения блокировок основного потока. Превью-изображения создаются библиотекой Pillow, а финальная верстка выполняется через ReportLab.
Система динамически подбирает разрешение Ghostscript в зависимости от габаритов баннера. Это позволяет удерживать координаты в выходном файле ниже порога 32 767, что критично для совместимости со старыми препресс-валидаторами. На трехметровых полотнах погрешность контуров не превышает 0,5 мм.
Сервис не использует ICC-профили, передавая управление цветом RIP-системам типографий. Файлы генерируются в модели DeviceCMYK с ограничением суммы красок в 240% и использованием чистого черного цвета K100 для текста. Вся структура файла проверяется внутренним скриптом на соответствие техническим требованиям.
Фронтенд реализован на чистом JS без фреймворков. Проект развернут в Docker Compose, а процесс деплоя через GitHub Actions включает более 1 100 автотестов. Инструменты контроля проверяют масштаб 1:1, отсутствие растровых объектов и корректность перевода шрифтов в кривые перед отправкой файла клиенту.

