Наша компания ежедневно выставляет десятки счетов, договоров и актов приёмки, и сейчас каждый документ собирается вручную в офисном редакторе. Мы ищем разработчика, который напишет переиспользуемую библиотеку генерации PDF: на вход она получает шаблон и набор значений полей, а на выходе отдаёт готовый документ, пригодный для печати и отправки. Библиотека станет частью нашего бэкенда, поэтому аккуратная архитектура, предсказуемое поведение и читаемый код для нас так же важны, как и внешний вид результата.
Каждый шаблон должен поддерживать текстовые поля, таблицы с автоматическим переносом строк, нумерацию страниц и повторяющиеся колонтитулы. Отдельно нужна вставка растровых изображений: печать компании и отсканированная подпись, которые ставятся в фиксированных координатах и масштабируются без потери качества. Результат обязан быть стабильным по вёрстке — один и тот же договор, сгенерированный дважды, должен выглядеть одинаково, — и включать встроенные шрифты, чтобы кириллица корректно отображалась на любой машине.
Пожалуйста, предложите язык и библиотеки, которыми будете пользоваться, опишите, как хранятся и версионируются шаблоны, и оцените трудоёмкость. Нам важны исполнители, которые думают про длинные документы, расход памяти и случаи, когда поле пустое или слишком длинное для своей ячейки. Модульные тесты на сложные раскладки входят в результат, а не идут отдельной опцией.