Передача параметров шаблона в метод подписи документов
Если в документ необходимо поставить видимую подпись, то в дополнительные параметры следует
положить два значения: первое – идентификатор шаблона в качестве значения параметра
PdfSignatureTemplateId
, второе – параметры шаблона в качестве значения параметра
PdfSignatureAppearance
.
Примечание
Возможные значения параметра PdfSignatureTemplateId
зависят от вида шаблона отображаемой
подписи. Поле TemplateId
при использовании каждого из шаблонов должно иметь
значение 1, 2 или 3 соответственно.
Примечание
Параметр шаблона отображаемой подписи Page
может иметь как положительные, так и отрицательные значения.
Отрицательные значения показывают, что количество страниц нужно отсчитывать от последней страницы документа в сторону начала.
При этом значение -1
соответствует последней странице документа.
Содержимое шаблона должно быть представлено как json-объект, сериализованный в UTF-8 строку и закодированный в BASE64.
Пример запроса на подпись PDF-документа, включающий в себя отображаемую подпись в виде набора текстовых данных:
POST http://<hostname>/SignServer/rest/api/documents HTTP/1.1
Content-Type: application/json
Authorization: Bearer
User-Agent: PostmanRuntime/7.15.2
Accept: */*
Cache-Control: no-cache
Host: grand-pc
Cookie: ASP.NET_SessionId=maaczeeyn5tx02wjtwy41cfc; __RequestVerificationToken_L1NUUw2=mfsOa7NJ4_N7PxmvjMjdv3B36CRqSzKaWOO-UV3o74Is1n2lJCo6KTaInVogpMvWiS6lkp5YI5jypYkgzn4g1YwEMX-mwwtNI4ZtYteIkoE1
Accept-Encoding: gzip, deflate
Content-Length: 74210
Connection: keep-alive
{
"Content": "JVBERi0xL...",
"Signature": {
"Type": "PDF",
"Parameters": {
"PDFFormat": "CMS",
"PdfSignatureAppearance":"eyJDb2...",
"PdfSignatureTemplateId": "1"
},
"CertificateId": 1006,
"PinCode": ""
}
}
Примеры содержимого параметра PdfSignatureAppearance для различных шаблонов.
Простой текстовый шаблон (PdfSignatureTemplateId = 1)
{
"Content": [{
"Text": "Подлинник электронного документа, подписанного ЭП, хранится в системе элеткронного документооборота Минкомсвзяи России.",
"Font": {
"FontSize": 4,
"FontFamily": "arial",
"FontStyle": 0,
"FontColor": {
"Red": 0,
"Green": 0,
"Blue": 0
}
}
},
{
"Text": "СВЕДЕНИЯ О СЕРТИФИКАТЕ ЭП:",
"Font": {
"FontSize": 8,
"FontFamily": "times",
"FontStyle": 0,
"FontColor": {
"Red": 0,
"Green": 0,
"Blue": 0
}
}
},
{
"Text": "Кому выдан: Иванов Иван Иванович",
"Font": {
"FontSize": 8,
"FontFamily": "times",
"FontStyle": 0,
"FontColor": {
"Red": 0,
"Green": 0,
"Blue": 0
}
}
},
{
"Text": "Кем выдан: УЦ Минкомсвязи",
"Font": {
"FontSize": 8,
"FontFamily": "times",
"FontStyle": 0,
"FontColor": {
"Red": 0,
"Green": 0,
"Blue": 0
}
}
},
{
"Text": "Действителен: с 12.12.2015 по 12.12.2016",
"Font": {
"FontSize": 8,
"FontFamily": "times",
"FontStyle": 0,
"FontColor": {
"Red": 0,
"Green": 0,
"Blue": 0
}
}
}],
"TemplateId": 1,
"Rect": {
"LowerLeftX": 215,
"LowerLeftY": 10,
"UpperRightX": 405,
"UpperRightY": 85,
"BorderRadius": 0,
"BorderWeight": 1,
"BorderColor": {
"Red": 75,
"Green": 13,
"Blue": 100
},
"BackgroundColor": null,
"ContentMargin": 5
},
"Page": 1
}
Base64-encoded содержимое шаблона может быть загружено здесь: Base64-encoded
Как видно из примера, шаблон состоит из прямоугольника подписи Rect
, описывающего позицию и размеры штампа, а также набора текстовых блоков в поле Content
, которые в этот штамп входят.
Результатом использования приведенного выше шаблона при формировании подписи является следующий штамп:
Шаблон с логотипом и текстом (PdfSignatureTemplateId = 2)
{
"Content":[
{
"Text":"Подлинник электронного документа, подписанного ЭП, хранится в системе элеткронного документооборота Минкомсвзяи России.",
"Margin":50,
"Font":{
"FontSize":4,
"FontFamily":"arial",
"FontStyle":0,
"FontColor":{
"Red":0,
"Green":0,
"Blue":0
}
}
},
{
"Text":"СВЕДЕНИЯ О СЕРТИФИКАТЕ ЭП",
"Margin":50,
"Font":{
"FontSize":8,
"FontFamily":"times",
"FontStyle":0,
"FontColor":{
"Red":0,
"Green":0,
"Blue":0
}
}
},
{
"Text":"Кому выдан: Иванов Иван Иванович",
"Font":{
"FontSize":8,
"FontFamily":"times",
"FontStyle":0,
"FontColor":{
"Red":0,
"Green":0,
"Blue":0
}
}
},
{
"Text":"Кем выдан: УЦ Минкомсвязи",
"Font":{
"FontSize":8,
"FontFamily":"times",
"FontStyle":0,
"FontColor":{
"Red":0,
"Green":0,
"Blue":0
}
}
},
{
"Text":"Действителен: с 12.12.2015 по 12.12.2016",
"Font":{
"FontSize":8,
"FontFamily":"times",
"FontStyle":0,
"FontColor":{
"Red":0,
"Green":0,
"Blue":0
}
}
}
],
"TemplateId":2,
"Icon":{
"Image":"iVBORw0KGgo...",
"LowerLeftX":null,
"LowerLeftY":50,
"Scale":40
},
"Rect":{
"LowerLeftX":215,
"LowerLeftY":10,
"UpperRightX":405,
"UpperRightY":85,
"BorderRadius":0,
"BorderWeight":1,
"BorderColor":{
"Red":75,
"Green":13,
"Blue":100
},
"BackgroundColor":null,
"ContentMargin":5
},
"Page":1
}
Base64-encoded содержимое шаблона может быть загружено здесь: Base64-encoded
Данный шаблон помимо текстовых блоков, которые были приведены в предыдущем примере, включает в себя блок изображения Icon
, описывающий логотип, который включается в штамп подписи.
Результатом использования приведенного выше шаблона при формировании подписи является следующий штамп:
Шаблон в виде изображения (PdfSignatureTemplateId = 3)
{
"Background":{
"Image":"iVBORw0KGg..."
},
"TemplateId":3,
"Rect":{
"LowerLeftX":10,
"LowerLeftY":10,
"UpperRightX":194,
"UpperRightY":86
},
"Page":1
}
Base64-encoded содержимое шаблона может быть загружено здесь: Base64-encoded
В данном примере в качестве штампа используется логотип компании, использованный в прошлом примере. Изображение представляет из себя ImageBlock
в поле Background
, которое будет размещено на всей площади штампа, размеры которго описываются полем Rect
.
Результатом использования приведенного выше шаблона при формировании подписи является следующий штамп: