Статья описывает настройку штампов, которые наносятся на PDF-документы действием «Добавить штамп»: профили и элементы профилей, расчёт размеров и положения, а также сервис QR-кода проверки актуальности документа. Штампы формирует модуль Stamp портала; движок рабочих процессов вызывает его через API, но модуль используется и другими функциями портала.

Из чего состоит штамп

ОбъектГде настраиваетсяЧто определяет
Действие «Добавить штамп»Правило автоматизации (Канбан-доска типа файла или процесса)Когда и на какие документы наносить штамп; размер, точку привязки, координаты и страницу; ссылку на профиль.
Профиль штампаСписок «Профили штампов» (Центр администрирования)Оформление: шрифт, рамку. Объединяет элементы профиля.
Элементы профиля

Список «Профили штампов (элементы)» (Центр администрирования)

Содержимое: строки текста, изображения, 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 (идентификатор документа); первая страница отчёта вставляется в штамп как изображение. Размер штампа принимается равным размеру страницы отчёта. Строка подключения источников данных подставляется системой (в шаблоне она должна быть пустой).

Раскладка элементов

Пример раскладки
Профиль: ширина штампа = 150 pt (из «Размера штампа» действия)

 Элемент (Порядок / Номер группы)          Результат
 ─────────────────────────────────         ┌──────────────────────────────┐
 Строка «В производство работ» (10 / 1)    │     В ПРОИЗВОДСТВО РАБОТ     │  строка 1: 1 колонка × 150
 Строка «Дата»                 (20 / 2)    ├──────────────┬───────────────┤
 Строка Format(Date())         (30 / 2)    │ Дата         │ 01.09.2026    │  строка 2: 2 колонки × 75
 Изображение подписи           (40 / 0)    ├──────────────┴───────────────┤
                                           │        [подпись.png]         │  строка 3 (группа = Порядок 40)
                                           └──────────────────────────────┘
 Высота штампа = фактическая высота всех строк
  • Элементы сортируются по «Порядку» и группируются в строки по «Номеру группы» (для элементов без группы группой служит их «Порядок»).
  • Ширина каждой колонки строки = ширина штампа / количество элементов в строке.
  • Высота штампа рассчитывается по фактическому содержимому; высота из «Размера штампа» используется, только если рассчитать её не удалось.

Размещение штампа на листе

Параметры задаются в действии «Добавить штамп» (или в профиле этапа):

АтрибутФорматОписание
Размер штампаширина;высота, ptШирина определяет ширину колонок; высота пересчитывается по содержимому.
Расположение отзначение спискаУгол листа — точка привязки: левый нижний, левый верхний, правый верхний, правый нижний (по умолчанию).
Расположение штампаX;Y, ptСмещение от точки привязки (см. таблицу).
Номер страницыцелоеПусто — все страницы; N ≥ 1 — страница N; 0 — первая; −N — страница «всего − N».
Точка привязкиX — расстояниеY — расстояние
Левый нижний уголот левого края листа до левого края штампаот нижнего края листа до нижнего края штампа
Левый верхний уголот левого края листа до левого края штампаот верхнего края листа до верхнего края штампа
Правый верхний уголот правого края листа до левого края штампаот верхнего края листа до верхнего края штампа
Правый нижний угол (по умолчанию)от правого края листа до левого края штампаот нижнего края листа до нижнего края штампа
  • 1 pt = 1/72 дюйма ≈ 0,353 мм; A4 — 595 × 842 pt, A3 — 842 × 1191 pt.
  • Отсчёт ведётся от видимой области страницы (CropBox). Поворот страницы учитывается: штамп ставится в угол так, как страница видна на экране.
  • Для правых углов X — расстояние до левого края штампа, поэтому X должен быть не меньше ширины штампа.

Подбор координат

Подбор координат удобно выполнять на тестовом документе с отдельным правилом, срабатывающим на тестовый статус. Начните с привязки «Правый нижний угол» и X = ширина штампа + 20.

Пример: штамп «В производство работ»

  1. Создайте профиль «В производство работ»: Шрифт — файл шрифта с кириллицей, Толщина рамки — 1, Цвет рамки — 0,0,255.
  2. Добавьте элементы профиля:
    ТипПорядокНомер группыФормулаОформление
    Строка101"В ПРОИЗВОДСТВО РАБОТ"Размер шрифта 10, цвет 0,0,255
    Строка202"Дата"Размер шрифта 8, выравнивание влево
    Строка302Format("{0:dd.MM.yyyy}", Date()) ПРОВЕРИТЬ СИНТАКСИСРазмер шрифта 8
    Изображение40
    Формула, возвращающая файл подписи ГИПаРазмер изображения 60;25
  3. На Канбан-доске типа файла в столбце статуса «Согласовано» создайте правило с действием «Добавить штамп»: Профиль штампа — «В производство работ», Размер штампа — 150;120, Расположение от — «Правый нижний угол», Расположение штампа — 190;245, Номер страницы — пусто (на все листы).

Нанесение штампа перезаписывает атрибут «Файл» документа. Правила на изменение «Файла» (например, сброс статуса при новой версии) должны исключать изменения, сделанные системным пользователем, иначе штамп сбросит статус документа.

QR-код проверки актуальности документа

Модуль Stamp содержит отдельный сервис QR-кода: на все страницы PDF (в отдельном слое «QR Code») наносится QR-код со ссылкой на страницу проверки, которая по идентификатору и ревизии показывает, актуален ли документ. Сервис вызывается через API POST stamp/api/qrcode/Add/{itemId} (например, из действия «Вызов внешнего сервиса») и настраивается параметрами конфигурации портала:

ПараметрОписание
Workflow.QRCode.PageUrlАдрес страницы проверки. В QR-код кодируется <PageUrl>?Rev=<ревизия>&Id=<ID документа> (страница проверки портала — /qrcode/check).
Workflow.QRCode.SizeРазмер QR-кода, ширина;высота в pt.
Workflow.QRCode.PositionСмещение X;Y в pt (правила — как для штампа).
Workflow.QRCode.Position.AnchorТочка привязки: BottomLeft, TopLeft, TopRight, BottomRight (по умолчанию).
Workflow.Item.Field.RevisionВнутреннее имя атрибута ревизии документа; значение добавляется в QR-код и сверяется при проверке.
Workflow.Item.Field.StatusВнутреннее имя атрибута статуса, проверяемого на странице проверки.
Workflow.QRCode.StatusListValidИдентификаторы (GUID через запятую) статусов, при которых документ считается действительным.
Workflow.QRCode.StatusListWarningИдентификаторы статусов, при которых выводится предупреждение.

Результат проверки (POST stamp/api/qrcode/Check/{itemId}/{revision}):

РезультатУсловие
ДействителенРевизия совпадает, статус входит в StatusListValid (или у документа нет атрибута статуса).
ПредупреждениеРевизия совпадает, статус входит в StatusListWarning.
НедействителенРевизия в QR-коде отличается от текущей либо статус не входит ни в один из списков.
Не определёнНе заданы параметры атрибутов ревизии и статуса.

QR-код можно нанести и через профиль штампа с элементом типа «QR-код» — тогда содержимое QR задаётся формулой, а положение — параметрами действия «Добавить штамп».

Диагностика

СимптомВозможная причина
Штамп не появился, ошибок нетФайл не PDF (действие пропускает такие файлы); не выполнены условия правила; правило не сработало на событие.
Ошибка при нанесении штампаНе заполнены «Размер штампа»/«Расположение штампа» или заданы не числами; у элемента «Строка» не заполнены размер или цвет шрифта; не указан шрифт профиля; «Номер страницы» больше числа страниц.
Штамп за пределами листаДля правых углов X меньше ширины штампа; координаты рассчитаны для другого формата листа.
Вместо кириллицы пустые символыВ шрифте профиля нет кириллических глифов.
После штампа сбросился статус документаСработало правило на изменение «Файла» без исключения системного пользователя.
Штамп нанесён дваждыПравило сработало повторно (например, статус устанавливался дважды); добавьте условие.

См. также

  • No labels