Описание проекта
Сервис должен предоставлять небольшой предсказуемый HTTP API: отправляем идентификатор шаблона или инлайн-шаблон вместе с JSON-объектом данных и получаем обратно либо бинарный PDF, либо ссылку на сохранённый файл. Шаблоны — это HTML и CSS, поэтому мы ждём корректной работы с размером страницы и полями, повторяющимися верхними и нижними колонтитулами, нумерацией страниц, аккуратными переносами страниц и встроенными кастомными шрифтами, чтобы результат точно соответствовал нашему бренду. Серверный рендеринг должен быть детерминированным: одинаковый вход всегда даёт побайтово сравнимый результат. Для нас важна корректная обработка таблиц, разрывающихся на несколько страниц, юникода и логотипов высокого разрешения. Производительность тоже важна — эндпоинт должен быстро рендерить типовой многостраничный счёт и выдерживать разумный всплеск одновременных запросов, не падая.
Предложите разумный выбор движка и обоснуйте его, упакуйте сервис в контейнер для независимого деплоя и включите подход к управлению шаблонами, версионированию и базовой аутентификации на API. Дайте понятную документацию и рабочий пример, чтобы наша бэкенд-команда интегрировала всё за один день. При отклике поделитесь опытом работы с headless-рендерингом и встраиванием шрифтов.
— Чистый HTTP API: на входе шаблон + JSON, на выходе PDF
— Попиксельная вёрстка с колонтитулами, нумерацией и переносами страниц
— Встраивание кастомных шрифтов и полная поддержка юникода
— Детерминированный воспроизводимый серверный рендеринг
— Контейнеризация, независимый деплой и аутентификация API
— Документация и рабочий пример интеграции