Бизнес & эксплуатацияКейсы
24 мая 2024 г.7 мин

Как мы сделали генерацию PDF-договоров защищенной от парсинга

Рисуем счета и акты на лету с помощью PDFKit. Сложности кириллицы и защита подписей.
Иван Кавальков
Основатель Smart Creative Group
Короткий ответ по статье

Суть без длинного чтения

Если нужен быстрый вывод по теме, ниже собрали главное: что это значит, когда проблема уже влияет на бизнес и какой следующий шаг обычно даёт пользу быстрее всего.

Коротко

О чем статья

Рисуем счета и акты на лету с помощью PDFKit. Сложности кириллицы и защита подписей.

Когда актуально

В какой момент это становится проблемой

Тема становится прикладной, когда текущий контур уже мешает скорости изменений, стабильности продукта или прозрачности управления для бизнеса.

Следующий шаг

Что делать после прочтения

Следующий практический шаг — зафиксировать текущие риски, целевой результат и первую очередь работ, чтобы не лечить проблему наугад.

#01Задача

В B2B-портале требовалось автоматически генерировать "Счет-фактуру" и "Договор" при оформлении заказа. Важное требование безопасности: печать и подпись директора не должны легко "вытягиваться" из PDF как картинки.

Практический совет SmartCG:Лучший способ применить материал на практике — разобрать ваш текущий контур, ограничения и следующий прикладной шаг, а не копировать подход без контекста.

#02Выбор инструмента: PDFKit

Мы отказались от конвертации HTML в PDF (Puppeteer/wkhtmltopdf), так как это медленно и потребляет много RAM на сервере. Выбрали pdfkit — низкоуровневую библиотеку, которая рисует векторный PDF напрямую.

Практический совет SmartCG:Лучший способ применить материал на практике — разобрать ваш текущий контур, ограничения и следующий прикладной шаг, а не копировать подход без контекста.

#03Защита графики

Чтобы усложнить парсинг подписей, мы рисуем PNG-изображения печати и подписи на самом нижнем слое (background), а сверху накладываем текст документа. Дополнительно можно наложить невидимый "шум" (watermark).

#04Кириллица

По умолчанию PDFKit использует стандартные шрифты без поддержки кириллицы. Нам пришлось вшить в Docker-контейнер TTF файлы шрифта Roboto и регистрировать их программно перед генерацией документа.

Редакционная проверка и источники

Материал подготовлен как практический разбор и привязан к рабочим сценариям бизнеса, а не к абстрактной теории.

Ревью материала
Техническая редакция SmartCG
Архитектурное и редакционное ревью
Последнее обновление
24 мая 2024 г.
Как готовили материал
Материал подготовлен на основе проектной практики SmartCG, редакционного ревью и сопоставления с официальной документацией по теме.
Источники и подтверждающие материалы
Практическое продолжение статьи

Готовы внедрить это решение в ваш бизнес?

Закажите индивидуальную консультацию и проектный аудит со сметным договором.