Сервис формирует печатную форму документа в формате PDF по HTTP-запросу в формате JSON (XML не поддерживается в текущей версии).
На последней странице документа генерируется таблица подписантов, на промежуточных страницах отображается колонтитул с краткой информацией о документе.
Изображения для использования в качестве логотипа, находятся в директории assets/images/print_forms
, расположенной в директории приложения сервиса.
Примеры запросов находятся в директории request_examples/print_form/pdf
См. также “Запросы для формирования печатной формы” в примерах запросов.
curl --request POST --data-binary "@request_examples/print_form/pdf/request_example.json" http://localhost:8085/print_form_pdf_json
{
"request-id": "…",
"input-data":
{
"input-document": {…},
"signatures-info": {…},
"draw-options": {…}
},
"options": {…}
}
Объект описателя входного документа для создания печатной формы имеет поля:
id
- строка. Идентификатор документа. Используется для ссылок на входной параметр в сообщениях об ошибках и диагностическом логе.content-type
- строка. Указывает способ трактовки параметра content. Поддерживаемое значение: base64.content
- строка. При значении типа контента base64 - закодированный в base64 PDF-документ. Примечание: Ограничения на количество страниц в документе нет.Пример:
"input-document":
{
"id": "doc1",
"content-type": "base64",
"content": "[base64 encoded pdf file]"
}
Объект signatures-info
имеет поля:
signature-summary-text
- строка. Общее описание таблицы подписантов для вывода перед данными подписантов.table-header-texts
- массив строк. Список заголовков таблицы подписантов. Примечание: в текущей версии может быть строго 4 столбца (ограничение элемента массива signatures
, описанного ниже).table-header-column-width-list
- массив чисел с плавающей точкой. Управляет шириной столбцов таблицы. Сумма всех нормализованных ширин должна равняться единице. Размер массива должен совпадать с размером поля table-header-texts
.signatures
- массив объектов с данными подписантов. Детали в пункте Описатель данных подписанта ниже.intermediate-page-footer-info
- данные для вывода в колонтитуле на всех страницах документа, кроме последней, где находится таблица подписантов. Детали см. ниже.logo-asset-name
- строка. Опциональный параметр. Имя файла изображения (с расширением) для вывода в правом верхнем углу таблицы подписантов. Путь задается относительно директории assets/images/print_forms
в рабочем каталоге сервиса.Пример:
"signatures-info": {
"signature-summary-text": "…",
"table-header-texts": […],
"table-header-column-width-list": […],
"signatures": […],
"intermediate-page-footer-info": {…},
"logo-asset-name": "…"
}
Элемент массива signatures
имеет поля:
description
- строка. Общее описание принадлежности подписи. Текст выводится в первый столбец таблицы подписантов.certificate-owner
- объект со строковыми полями organization
и employee
, описывающий организацию, ФИО и должность владельца сертификата. Текст выводится во второй столбец.certificate
- объект со строковыми полями serial-number
и validity
, описывающий серийный номер и период действия сертификата, используемого для подписи. Текст выводится в третий столбец.signing-timestamp
- строка. Описание точного времени подписи. Текст выводится в четвертый столбец.Пример:
{
"description": "Подпись отправителя",
"certificate-owner":
{
"organization": "ООО \"ФИ-КРУГ\"",
"employee": "Петров Иван Сидорович, Генеральный Директор"
},
"certificate":
{
"serial-number": "11255807011ABCBBE4DBF93ECCCB96C45",
"validity": "с 01.02.2001 18:48 по 01.02.2031 18:48 GMT+03:00"
},
"signing-timestamp": "01.02.2021 19:00 GMT+03:00"
}
Объект intermediate-page-footer-info
имеет поля:
lines
- массив строк. Произвольные данные, описывающие подписываемый документ. Выводятся в виде таблицы с невидимыми границами. Последней строкой будет описание номера текущей страницы, если это включено полем print-page-number
.logo-asset-name
- строка. Опциональный параметр. Имя файла изображения(с расширением) для вывода в правой части данных о документе. Путь задается относительно директории assets/images/print_forms
в рабочем каталоге сервиса.print-page-number
- логической значение. Указывает выводить ли номер текущей страницы документа под данными о документе.Пример:
{
"lines": [
"Передан через XXX 01.02.2003 15:20 GMT+03:00",
"abcdef00-0000-1111-2222-abcdefabcdef"
],
"logo-asset-name": "golang-gopher.png",
"print-page-number": true
}
Объект draw-options
имеет поля:
font-color
- строка в формате "#rrggbb", где rgb - шестнадцатеричные компоненты RGB цвета в диапазоне от 0 до ff. Пример красного цвета: "font-color":“#ff0000”.font-size
- целое число. Размер шрифта данных подписантов в таблице подписантов. Единица равна 1/72 дюйма.large-font-size
- целое число. Размер шрифта вывода текста signature-summary-text
в таблице подписантов. Единица равна 1/72 дюйма.table-border-color
- строка в формате "#rrggbb", где rgb - шестнадцатеричные компоненты RGB цвета в диапазоне от 0 до ff. Пример красного цвета: "font-color":“#ff0000”. Цвет границ таблицы подписантов.Пример:
{
"font-color": "#0054BE",
"font-size": 8,
"large-font-size": 14,
"table-border-color": "#0054BE"
}
Поддерживаемые опции:
enable-debug-merged-doc-save
- логическое значение. Указывает создавать ли копию объединенного документа в локальной директории reports_debug
сервиса. Значение по умолчанию - false
.enable-debug-pdf-log
- логическое значение. Активирует расширенный диагностический лог создания PDF. Значение по умолчанию - false
.