Skip to main content

Indeed CM Card Template Designer

Утилита Indeed CM Card Template Designer позволяет создавать шаблоны печати на смарт-картах, которые используются с принтером EDIsecure XID 8100\8300.

Интеграция Indeed Certificate Manager с принтером позволяет выполнять следующие сценарии:

  • выпускать смарт-карты с помощью считывателей принтера (контактного и бесконтактного) без печати,
  • выпускать смарт-карты с печатью изображения или текста,
  • печатать на смарт-картах изображение или текст без выпуска карты пользователям

Утилита Card Template Designer предоставляется по запросу службой технической поддержки компании Индид.

Запустите приложение cardTemplateDesigner.exe из дистрибутива. После запуска в окне приложения загрузится базовый шаблон печати:

Создание шаблона печати

Отредактируйте шаблон в поле Source. Для визуализации шаблона нажмите Render:

Для создания шаблонов в Card Template Designer используется Windows GDI + API в синтаксисе XML. Все содержимое шаблона должно находиться в секции <cardDesign>...</cardDesign>.

Закомментированный текст внутри секций <!- -... - -> не учитывается при создании шаблона.

Параметры шаблонов печати
  • Отображаемое имя шаблона. Имя шаблона отображается в интерфейсе Indeed CM. Задается в значении параметра displayName в секции <cardDesign>.
Пример

<cardDesign displayName="Тестовый шаблон" >
...
</cardDesign>

  • Перо. Задается в секции <pens> с параметрами pen id, color, width.
Пример

<pens>
<pen id=’id1’ color=’#FF000000’ width=’0.1’ />
</pens>

Описанная строка определяет цвет линии и толщину. Далее pen id задается как параметр в других секциях. Например, как контур прямоугольника:

<rectangle pen=’id1’ x=’0.9’ y=’0.9’ width=’4’ height=’54.2’ />

caution

Для задания цвета используйте шестнадцатеричное значение и степень прозрачности. Например, #FFA52A2A, где FF – полная непрозрачность коричневого цвета A52A2A .
Таблицы цветов и прозрачности приведены в Приложении 1.

  • Кисть. Задается в секции <brushes> с параметрами brush id и color.
Пример

<brushes>
<brush id=’id1’ color=’#FF0000FF’ />
</brushes>

В дальнейшем brush id задается как параметр в других секциях. Например, как цвет прямоугольника:

<rectangle brush=’id1’ x=’0.9’ y=’0.9’ width=’4’ height=’54.2’ />

  • Шрифт. Задается в секции <fonts> с параметрами font id, familyName, size, style
Пример

<fonts>
<font id=’id1’ familyName=’Arial’ size=’3’ style=’regular’ />
<font id=’id2’ familyName=’Arial’ size=’4’ style=’italic’ />
</fonts>

Описанная структура определяет id, название, размер и начертание шрифтов. Далее font id задается как параметр в других секциях. Например, в секции <text>:

<text font=’id1’ brush=’id2’ x=’10’ y=’15’>$user.Name.elementAt(0)</text>
<text font=’id2’ brush=’id2’ x=’10’ y=’36’>$user.JobTitle</text>

  • Текст. Задается в составе секции <text> с параметрами:
    • font
    • brush
    • x
    • y
    • widht (опциональный)
    • heigth (опциональный)
    • horizontalAlignment: left, right, center (опциональный)
    • verticalAlignment: top, bottom, center (опциональный)
    • formatFlags (см. подробное описание значений)
Пример

<text font=’id2’ brush=’id2’ x=’10’ y=’36’ width=’35’ height=’9’
formatFlags=’noClip’>$user.JobTitle</text>

Описанная строка определяет шрифт, цвет, положение, размер и формат вывода должности пользователя, подставляемой из Active Directory.

  • Атрибуты пользователя Active Directory выводимые на печать. Данные пользователя (ФИО, должность, подразделение и т.д.) подставляются в шаблон из атрибутов Active Directory. Синтаксис для подстановки значений наиболее часто используемых атрибутов:
    • $user.Name
    • $user.LogonName
    • $user.PrincipalName
    • $user.FirstName
    • $user.LastName
    • $user.Email
    • $user.TelephoneNumber
    • $user.Country
    • $user.State
    • $user.Locality
    • $user.Organization
    • $user.OrgUnit
    • $user.Street
    • $user.JobTitle

Для печати данных из произвольного атрибута используйте синтаксис $user.attribute(’имя атрибута Active Directory’)

Пример

$user.attribute(’Notes’)

  • Перенос строк. Для переноса текста по строкам (например, разбивки ФИО пользователя, подставленного из Active Directory на несколько строк) можно использовать параметры replace (замена символа) или elementAt (извлечение элемента из строки).
Пример 1

Фамилия, имя и отчество пользователя подставляются из атрибута Active Directory и пишутся в одну строку в шаблоне через пробелы:

<text font=’id1’ brush=’id2’ x=’10’ y=’15’>$user.Name</text>

Пример 2

Фамилия, имя и отчество пользователя подставляются из атрибута Active Directory, пробелы заменяются на перевод строки (\r – переход к началу строки, \n – переход на новую строку). В результате в шаблоне ФИО разбивается на три строки:

<text font=’id1’ brush=’id2’ x=’10’ y=’15’>$user.Name.replace(’␣’,␣’\r\n’)</text>

Аналогичным образом можно перенести на несколько строк значение должности или подразделения пользователя. Вместо пробела "" может быть любой другой символ.

Для переноса извлеченного из Active Directory значения ФИО по строкам, без замены текста применяется elementAt. ФИО пользователя можно вывести в шаблоне построчно следующим образом:

info

<text font=’id1’ brush=’id2’ x=’10’ y=’15’>$user.Name.elementAt(0)</text>
<text font=’id1’ brush=’id2’ x=’10’ y=’22’>$user.Name.elementAt(1)</text>
<text font=’id1’ brush=’id2’ x=’10’ y=’29’>$user.Name.elementAt(2)</text>

где:

  • 0 – первое слово (например, Имя)
  • 1 – второе слово (например, Фамилия)
  • 2 – третье слово (например, Отчество)
  • Изображение. Задается в секции <image> с параметрами:
    • x
    • y
    • widht (опциональный)
    • heigth (опциональный)
    • keepAspectRatio (true или false)
    • data (опциональный)
Пример

<image x=’56’ y=’14’ width=’22’ height=’26’
keepAspectRatio=’true’>$user.Photo</image>

Описанная строка определяет положение, размер и следование пропорциям изображения, подставляемого из атрибута Active Directory (переменная $user.Photo). Помимо переменной можно подставить и изображение в кодировке base64 (например, для добавления в шаблон логотипа компании) и затем визуализировать его выполнив следующие действия:

  1. Нажмите Load image и перейдите в окно выбора изображения в формате JPEG. Размер изображения подбирается исходя из желаемого дизайна шаблона и размеров смарт-карты.
  2. Нажмите правой кнопкой мыши на изображении и нажмите Копировать.
  3. Выберите изображение и нажмите Открыть.
  4. В секции <image> удалите $user.Photo и нажмите Вставить.
  5. Нажмите Render для визуализации.

Ниже на рисунке приведен пример шаблона со статическим логотипом компании и подстановкой данных пользователя из Active Directory:

  • ФИО с разбивкой по строкам, написанные жирным шрифтом,
  • фотография,
  • должность, написанная курсивом.

Далее приведен пример ожидаемого результата печати по шаблону. Для визуализации вместо переменных $user.Name.elementAt, $user.JobTitle и $user.Photo в шаблоне прописаны данные пользователя и загружена его фотография.

  • Прямоугольник. Задается в секции <rectangle> с параметрами:

    • pen (опциональный)
    • brush (опциональный)
    • x
    • y
    • width (опциональный)
    • height (опциональный)
  • Сторона карты. Задается в секциях <frontSide> (передняя) и <backSide> (задняя). Внутри секции располагаются элементы, определяющие то, что должно быть напечатано на стороне (rectangle, text, image и т.д).

  • Вращение. Содержимое стороны карты может быть развернуто при необходимости. Для разворота в секции стороны карты используйте параметры rotationAngle, rotationOffsetX, rotationOffsetY.

Пример:

<frontSide rotationAngle=’180’ rotationOffsetX=’43.8’ rotationOffsetY=’28’>
...
</frontSide>

Ниже на рисунке приведен пример перевернутого на 180 градусов шаблона со статическим логотипом компании и подстановкой данных пользователя из Active Directory.

HEX-коды для настройки прозрачности цветов

В таблице приведены HEX-коды процентного соотношения прозрачности. Где 100% – абсолютно непрозрачный цвет, 0% – абсолютно прозрачный.

HEX-коды для настройки прозрачности цветов

100%FF
95%F2
90%E6
85%D9
80%CC
75%BF
70%B3
65%A6
60%99
55%8C
50%80
45%73
40%66
35%59
30%4D
25%40
20%33
15%26
10%1A
5%0D
0%00

Пример использования прозрачности для цвета #0000FF :

100%    75%     50%    25%