Статья описывает настройку штампов, которые наносятся на PDF-документы действием «Добавить штамп»: профили и элементы профилей, расчёт размеров и положения, а также сервис QR-кода проверки актуальности документа. Штампы формирует модуль Stamp портала; движок рабочих процессов вызывает его через API, но модуль используется и другими функциями портала.
Из чего состоит штамп
| Объект | Где настраивается | Что определяет |
|---|
| Действие «Добавить штамп» | Правило автоматизации (Канбан-доска типа файла или процесса) | Когда и на какие документы наносить штамп; размер, точку привязки, координаты и страницу; ссылку на профиль. |
| Профиль штампа | Список «Профили штампов» (Центр администрирования) | Оформление: шрифт, рамку. Объединяет элементы профиля. |
| Элементы профиля | Список «Элементы профиля штампа» | Status |
|---|
| colour | Yellow |
|---|
| title | Уточнить |
|---|
|
| Содержимое: строки текста, изображения, QR-код, фрагмент отчёта Telerik; их раскладку по строкам и колонкам. |
Профиль штампа
| Атрибут | Обязательный | Описание |
|---|
| Название | Да | Название профиля; выбирается в действии «Добавить штамп». |
| Шрифт | Да | Файл шрифта (TTF/OTF), которым выводится текст штампа. Используется кодировка Identity-H, поэтому шрифт должен содержать кириллицу. |
| Толщина рамки | Нет | Толщина внешней рамки штампа в pt. 0 или пусто — без рамки. |
| Цвет рамки | Нет | Цвет рамки в формате R,G,B (или R;G;B), значения 0–255. По умолчанию — чёрный. |
| Размер штампа, Расположение от, Расположение штампа, Номер страницы | Для профилей этапов | Заполняются, если профиль назначается этапу процесса и используется действием «Добавить штамп» с профилем из этапа: в этом режиме геометрия берётся из профиля. Смысл атрибутов — как в действии (см. ниже). |
Элементы профиля
Общие атрибуты
| Атрибут | Описание |
|---|
| Профиль штампа | Профиль, к которому относится элемент. |
| Порядок | Порядок вывода элементов (сверху вниз, слева направо). |
| Номер группы | Элементы с одинаковым номером группы (> 0) выводятся в одной строке штампа как колонки равной ширины. Если номер группы пуст или 0, элемент занимает отдельную строку. |
| Формула | Формула, вычисляемая в контексте документа, на который наносится штамп (для строк — текст, для изображений — файл, для QR-кода — кодируемый текст). |
Типы элементов
| Тип элемента | Атрибуты | Поведение |
|---|
| Строка | - Формула — текст строки;
- Размер шрифта — pt (обязательно);
- Цвет шрифта —
R,G,B (обязательно); - Выравнивание — по умолчанию по центру.
| Выводит текст; по вертикали — по центру ячейки. Длинный текст переносится, увеличивая высоту штампа. |
| Изображение | - Формула — файл изображения (элемент, значение подстановки или GUID файла);
- Размер изображения —
ширина;высота в pt, область вписывания; - Выравнивание — по горизонтали, по умолчанию по центру.
| Поддерживаются растровые форматы и SVG. Изображение вписывается в «Размер изображения» с сохранением пропорций. Если файл не найден, ячейка остаётся пустой (ошибка пишется в журнал, штамп наносится). |
| QR-код | - Формула — кодируемый текст (например, ссылка на карточку документа).
| QR-код растягивается на весь размер штампа (ширина × высота из действия). Используйте отдельный профиль с единственным элементом QR и квадратным размером. |
| Шаблон Telerik | - Шаблон штампа — файл отчёта .trdp.
| Отчёт формируется в PDF с параметром id (идентификатор документа); первая страница отчёта вставляется в штамп как изображение. Размер штампа принимается равным размеру страницы отчёта. Строка подключения источников данных подставляется системой (в шаблоне она должна быть пустой). |
Раскладка элементов
| Code Block |
|---|
| language | text |
|---|
| title | Пример раскладки |
|---|
|
Профиль: ширина штампа = 150 pt (из «Размера штампа» действия)
Элемент (Порядок / Номер группы) Результат
───────────────────────────────── ┌──────────────────────────────┐
Строка «В производство работ» (10 / 1) │ В ПРОИЗВОДСТВО РАБОТ │ строка 1: 1 колонка × 150
Строка «Дата» (20 / 2) ├──────────────┬───────────────┤
Строка Format(Date()) (30 / 2) │ Дата │ 01.09.2026 │ строка 2: 2 колонки × 75
Изображение подписи (40 / 0) ├──────────────┴───────────────┤
│ [подпись.png] │ строка 3 (группа = Порядок 40)
└──────────────────────────────┘
Высота штампа = фактическая высота всех строк |
- Элементы сортируются по «Порядку» и группируются в строки по «Номеру группы» (для элементов без группы группой служит их «Порядок»).
- Ширина каждой колонки строки = ширина штампа / количество элементов в строке.
- Высота штампа рассчитывается по фактическому содержимому; высота из «Размера штампа» используется, только если рассчитать её не удалось.
Размещение штампа на листе
Параметры задаются в действии «Добавить штамп» (или в профиле этапа):
...
| Tip |
|---|
|
Подбор координат удобно выполнять на тестовом документе с отдельным правилом, срабатывающим на тестовый статус. Начните с привязки «Правый нижний угол» и X = ширина штампа + 20. |
Пример: штамп «В производство работ»
- Создайте профиль «В производство работ»: Шрифт — файл шрифта с кириллицей, Толщина рамки — 1, Цвет рамки —
0,0,255. - Добавьте элементы профиля:
| Тип | Порядок | Номер группы | Формула | Оформление |
|---|
| Строка | 10 | 1 | "В ПРОИЗВОДСТВО РАБОТ" | Размер шрифта 10, цвет 0,0,255 |
| Строка | 20 | 2 | "Дата" | Размер шрифта 8, выравнивание влево |
| Строка | 30 | 2 | Format("{0:dd.MM.yyyy}", Date()) | Status |
|---|
| colour | Grey |
|---|
| title | Проверить синтаксис |
|---|
|
| Размер шрифта 8 |
| Изображение | 40 |
| Формула, возвращающая файл подписи ГИПа | Размер изображения 60;25 |
- На Канбан-доске типа файла в столбце статуса «Согласовано» создайте правило с действием «Добавить штамп»: Профиль штампа — «В производство работ», Размер штампа —
150;120, Расположение от — «Правый нижний угол», Расположение штампа — 190;245, Номер страницы — пусто (на все листы).
| Warning |
|---|
Нанесение штампа перезаписывает атрибут «Файл» документа. Правила на изменение «Файла» (например, сброс статуса при новой версии) должны исключать изменения, сделанные системным пользователем, иначе штамп сбросит статус документа. |
QR-код проверки актуальности документа
Модуль Stamp содержит отдельный сервис QR-кода: на все страницы PDF (в отдельном слое «QR Code») наносится QR-код со ссылкой на страницу проверки, которая по идентификатору и ревизии показывает, актуален ли документ. Сервис вызывается через API POST stamp/api/qrcode/Add/{itemId} (например, из действия «Вызов внешнего сервиса») и настраивается параметрами конфигурации портала:
...
| Info |
|---|
QR-код можно нанести и через профиль штампа с элементом типа «QR-код» — тогда содержимое QR задаётся формулой, а положение — параметрами действия «Добавить штамп». |
Диагностика
| Симптом | Возможная причина |
|---|
| Штамп не появился, ошибок нет | Файл не PDF (действие пропускает такие файлы); не выполнены условия правила; правило не сработало на событие. |
| Ошибка при нанесении штампа | Не заполнены «Размер штампа»/«Расположение штампа» или заданы не числами; у элемента «Строка» не заполнены размер или цвет шрифта; не указан шрифт профиля; «Номер страницы» больше числа страниц. |
| Штамп за пределами листа | Для правых углов X меньше ширины штампа; координаты рассчитаны для другого формата листа. |
| Вместо кириллицы пустые символы | В шрифте профиля нет кириллических глифов. |
| После штампа сбросился статус документа | Сработало правило на изменение «Файла» без исключения системного пользователя. |
| Штамп нанесён дважды | Правило сработало повторно (например, статус устанавливался дважды); добавьте условие. |
См. также