You are viewing an old version of this page. View the current version.
Compare with Current
View Page History
Version 1
Next »
Статья описывает настройку штампов, которые наносятся на 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 должен быть не меньше ширины штампа.
Пример: штамп «В производство работ»
- Создайте профиль «В производство работ»: Шрифт — файл шрифта с кириллицей, Толщина рамки — 1, Цвет рамки —
0,0,255. - Добавьте элементы профиля:
| Тип | Порядок | Номер группы | Формула | Оформление |
|---|
| Строка | 10 | 1 | "В ПРОИЗВОДСТВО РАБОТ" | Размер шрифта 10, цвет 0,0,255 |
| Строка | 20 | 2 | "Дата" | Размер шрифта 8, выравнивание влево |
| Строка | 30 | 2 | Format("{0:dd.MM.yyyy}", Date()) ПРОВЕРИТЬ СИНТАКСИС | Размер шрифта 8 |
| Изображение | 40 | | Формула, возвращающая файл подписи ГИПа | Размер изображения 60;25 |
- На Канбан-доске типа файла в столбце статуса «Согласовано» создайте правило с действием «Добавить штамп»: Профиль штампа — «В производство работ», Размер штампа —
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-коде отличается от текущей либо статус не входит ни в один из списков. |
| Не определён | Не заданы параметры атрибутов ревизии и статуса. |
Диагностика
| Симптом | Возможная причина |
|---|
| Штамп не появился, ошибок нет | Файл не PDF (действие пропускает такие файлы); не выполнены условия правила; правило не сработало на событие. |
| Ошибка при нанесении штампа | Не заполнены «Размер штампа»/«Расположение штампа» или заданы не числами; у элемента «Строка» не заполнены размер или цвет шрифта; не указан шрифт профиля; «Номер страницы» больше числа страниц. |
| Штамп за пределами листа | Для правых углов X меньше ширины штампа; координаты рассчитаны для другого формата листа. |
| Вместо кириллицы пустые символы | В шрифте профиля нет кириллических глифов. |
| После штампа сбросился статус документа | Сработало правило на изменение «Файла» без исключения системного пользователя. |
| Штамп нанесён дважды | Правило сработало повторно (например, статус устанавливался дважды); добавьте условие. |
См. также