Как мы сделали генерацию PDF-договоров защищенной от парсинга
Рисуем счета и акты на лету с помощью PDFKit. Сложности кириллицы и защита подписей.
Задача
В B2B-портале требовалось автоматически генерировать "Счет-фактуру" и "Договор" при оформлении заказа. Важное требование безопасности: печать и подпись директора не должны легко "вытягиваться" из PDF как картинки.
Выбор инструмента: PDFKit
Мы отказались от конвертации HTML в PDF (Puppeteer/wkhtmltopdf), так как это медленно и потребляет много RAM на сервере. Выбрали pdfkit — низкоуровневую библиотеку, которая рисует векторный PDF напрямую.
Защита графики
Чтобы усложнить парсинг подписей, мы рисуем PNG-изображения печати и подписи на самом нижнем слое (background), а сверху накладываем текст документа. Дополнительно можно наложить невидимый "шум" (watermark).
Кириллица
По умолчанию PDFKit использует стандартные шрифты без поддержки кириллицы. Нам пришлось вшить в Docker-контейнер TTF файлы шрифта Roboto и регистрировать их программно перед генерацией документа.
Нужна помощь с архитектурой?
Мы проектируем и разрабатываем Enterprise-решения с финансовой гарантией по SLA. Запишитесь на бесплатный аудит с нашим CTO, чтобы оценить узкие места вашего проекта.