Skip to main content

Создание шаблона для офисного принтера.

Шаблон должен находиться в папке "PrinterOffice", иметь расширение .json и название соответствующее шаблону переменных-vars.

Настраиваем принтер в Л2.

Для нового принтера выбираем тип "USB" (не имеет отношения к тому, как принтер подключен на самом деле). И модель "Office". 

image.png

Далее в списке адресов выбираем драйвер нужного нам принтера.

image.png

Для теста полезно выбрать Print to PDF. Данный драйвер будет просто запрашивать сохранения листа в .pdf файле, вместо печати физического принтера на реальной бумаге.

Для этого нужно будет зайти в Win + R , далее optionalfeatures.exe, ищем Microsoft Print to PDF и отмечаем галкой. Перезапустить службу "Диспетчер очереди печати" / перезагрузить систему.

image.png

 

______________________________________________________________________________________________________________________________________________

Шаблон состоит из доп. переменных / элементов шаблона.

Базовая структура шаблона:

{
  "additionalSettings": {
    "origins" : [
      {
        "x" : 0.0,
        "y" : 0.0
      }
    ]
  },
  "additionalVariables" :{
   
  }
}

В additionalSettings можно указать кол-во кол-во origins (исходных точек) для отпечатков. На каждую исходную точку будет создан отпечаток с началом в соответствующей координате.

Пример:

{
"variables" : {
"<code_128>" : {
"type" : "CODE_128"
}
}
}
{
"additionalSettings": {
"origins" : [
{
"x" : 0.0,
"y" : 0.0
},
{
"x" : 60.0,
"y" : 100.0
}
]
},
"additionalVariables" :{
"<code_128>" : {
"x" : 0,
"y" : 100,
"height" : 30,
"fontSize" : 12,
"innerSpace" : 10
}
}
}

image.png

В additionalVariables указываются элементы шаблона.

Каждый элемент имеет тип (те же типы, что и у переменных-vars) и значение. Есть несколько путей передачи в элемент типа.

1. Элемент назван так же, как и переменная-vars. Тип унаследуется от переменной-vars.

2. Тип указан в поле "type". Указанный тип всегда будет приоритетней унаследованного.

Также есть несколько путей передачи в элемент значения.

 1. Элемент назван так же, как и переменная-vars. Значение унаследуется от переменной-vars.

2. В поле элемента "value" указано название нужной переменной-vars. В этом поле также можно указать несколько переменных-vars или любой другой текст. Вместо названий будут подставлены значения переменных-vars, так же, как и в других принтерах. Указанное значение всегда будет приоритетней унаследованного.

Пример 1 (тип и значение указаны вручную):

{
"variables" : {
"<gtin>" : {
"type" : "GTIN"
},
"<total_capacity>" : {
"type" : "TOTAL_CAPACITY"
},
}
}
{
"additionalSettings": {
"origins" : [
{
"x" : 0.0,
"y" : 0.0
}
]
},
"additionalVariables" :{
"code_128" : {
"x" : 0,
"y" : 100,
"height" : 30,
"fontSize" : 12,
"type" : "CODE_128",
"value" : "02<gtin>10<total_capacity>",
"innerSpace" : 10
}
}
}

image.png

Пример 2 (тип и значения наследуются от переменной-vars):

{
"variables" : {
"<code_128>" : {
"type" : "CODE_128"
}
}
}
{
"additionalSettings": {
"origins" : [
{
"x" : 0.0,
"y" : 0.0
}
]
},
"additionalVariables" :{
"<code_128>" : {
"x" : 0,
"y" : 100,
"height" : 30,
"fontSize" : 12,
"innerSpace" : 10
}
}
}

image.png

______________________________________________________________________________________________________________________________________________

Параметры элементов:

Каждый элемент имеет ряд параметров. Для каждого присущи параметры "x" и "y" - это координаты.

Если не указать числовой параметр, то он будет равен 0.

(ВАЖНО) Все параметры длины, ширины, отступов и тд указываются в миллиметрах.

 (Размер текста в типографских пунктах)

Список типов элементов шаблона:

DATAMATRIX_GS, DATAMATRIX_NON_GS

width - ширина
height - высота

Пример:

{
"variables" : {
"dm" : {
"type" : "DATAMATRIX_GS",
"index" : 1
}
}
}
{
"additionalSettings": {
"origins" : [
{
"x" : 0.0,
"y" : 0.0
}
]
},
"additionalVariables" :{
"dm" : {
"x": 30,
"y" : 100,
"width" : 100,
"height": 100
}
}
}

image.png

GTIN ( фактически печатается как EAN-13)

Берётся необрезанный код 14ти единиц длиной, и обрезается слева до 13ти.

width - ширина

height - высота

underlineNumbersRatio - (Вещественное число с точкой) Соотношение высоты внутреннего отступа EAN-13
 ко всей высоте кода. При отсутствии значения или значении "нуль" отступа у кода не будет, как и нижних чисел.

Пример 1 (указан underlineNumbersRatio):

{
"variables" : {
"<gtin>" : {
"type" : "GTIN"
}
}
}
{
"additionalSettings": {
"origins" : [
{
"x" : 0.0,
"y" : 0.0
}
]
},
"additionalVariables" :{
"<gtin>" : {
"x": 30,
"y" : 100,
"width" : 100,
"height": 30,
"underlineNumbersRatio" : 0.2
}
}
}

image.png

Пример 2 (не указан underlineNumbersRatio)

image.png

CODE_128 (code 128 / gs1 128)

Если в коде указан FNC символ (то есть код - gs1 128), то коды Application Identifiers (AI) при генерации человеко-читаемого кода будут браться в кавычки (см. пример).

width - ширина

height - высота

fontSize - размер шрифта

innerSpace - вертикальный интервал между нижней границей кода и началом текста.

Пример 1 (без FNC - code 128):

{
"additionalSettings": {
"origins" : [
{
"x" : 0.0,
"y" : 0.0
}
]
},
"additionalVariables" :{
"<code_128>" : {
"x" : 0,
"y" : 100,
"height" : 30,
"fontSize" : 12,
"innerSpace" : 5
}
}
}
{
"variables" : {
"<code_128>" : {
"type" : "CODE_128"
}
}
}

image.png

Пример 2 (указан FNC - gs1 128)

{
"variables" : {
"<code_128>" : {
"type" : "CODE_128"
}
}
}
{
"additionalSettings": {
"origins" : [
{
"x" : 0.0,
"y" : 0.0
}
]
},
"additionalVariables" :{
"<code_128>" : {
"x" : 0,
"y" : 100,
"height" : 30,
"fontSize" : 12,
"innerSpace" : 5,
"value" : "\u00F10105412345000013\u001D17251231\u001D10ABC123\u001D21DEF456789"
}
}
}

image.png

IMAGE 

width - ширина

height - высота

Пример:

{
"variables" : {
"<image>" : {
"type" : "IMAGE",
"value" : "img.bmp"
}
}
}
{
"additionalSettings": {
"origins" : [
{
"x" : 0.0,
"y" : 0.0
}
]
},
"additionalVariables" :{
"<image>" : {
"x" : 70,
"y" : 100,
"height" : 100,
"width" : 100
}
}
}

image.png

Все остальные типы применимые к переменным-vars генерируются как текст.

width - незначимое свойство

height - незначимое свойство

fontSize - размер шрифта (в типографских пунктах)

fontFamily - семейство шрифта. Шрифт должен быть зарегистрирован в системе.

Посмотреть шрифты в системе
windows: 

dir C:\Windows\Fonts

linux:

fc-list

bold - жирный текст (true/false)

italic - курсивный текст (true/false)

maxWidth - Максимальная ширина строки текста превышая которую он будет перенесен на следующую строку.

innerSpace - Межстрочный интервал текста.

Перенос текста по строкам:

Перенос может быть:

  1. Автоматический, если задано свойство maxWidth (мм). В данном случае текст будет переноситься при достижении длины строки значения maxWidth или при достижения края страницы.
  2. Ручной, с помощью символа переноса строки '\n'.
  3. Два режима можно сочетать. Одновременно может быть и включено ограничение по длине, и проставлены символы переноса строки вручную: там, где текст должен быть перенесен в любом случае - например, начало абзаца.

Пример 1 (maxWidth задан - автоматический перенос строки при достижении maxWidth, а также при достижении края страницы):

{
"variables" : {
"<text>" : {
"type" : "TEXT",
"value" : "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."
}
}
}
{
"additionalSettings": {
"origins" : [
{
"x" : 0.0,
"y" : 0.0
}
]
},
"additionalVariables" :{
"<text>" : {
"x" : 60,
"y" : 40,
"fontFamily" : "WINGDNG2",
"fontSize": 12,
"bold" : true,
"italic" : true,
"innerSpace" : 4,
"maxWidth" : 150
}
}
}

image.png

Пример 2 (maxWidth отсутствует - перенос строки осуществляется с помощью \n)

{
"variables" : {
"<text>" : {
"type" : "TEXT",
"value" : "Lorem ipsum dolor sit amet, consectetur adipiscing elit,\n sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. \n Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi \nut aliquip ex ea commodo consequat. \nDuis aute irure dolor in reprehenderit in voluptate velit esse \ncillum dolore eu fugiat nulla pariatur. \nExcepteur sint occaecat cupidatat non proident, sunt in culpa qui \nofficia deserunt mollit anim id est laborum."
}
}
}
{
"additionalSettings": {
"origins" : [
{
"x" : 0.0,
"y" : 0.0
}
]
},
"additionalVariables" :{
"<text>" : {
"x" : 60,
"y" : 40,
"fontFamily" : "WINGDNG2",
"fontSize": 12,
"bold" : true,
"italic" : true,
"innerSpace" : 4
}
}
}

image.png

Поворот элемента.

Каждый элемент может быть повернут с помощью свойства rotation (градусы)

Пример:

{
"variables" : {
"<image>" : {
"type" : "IMAGE",
"value" : "img.bmp"
}
}
}
{
"additionalSettings": {
"origins" : [
{
"x" : 0.0,
"y" : 0.0
}
]
},
"additionalVariables" :{
"<image>" : {
"x" : 70,
"y" : 100,
"height" : 100,
"width" : 100,
"rotation" : 90
}
}
}

                                 Было (0 градусов)                                            Стало (90 градусов)

image.pngimage.png

Формат бумаги

Шаблон поддерживает форматы от A0 до A13.

Формат указывается как строка в свойстве "paperFormat" в "additionalSettings".

Пример:

{
"additionalSettings": {
"origins" : [
{
"x" : 0.0,
"y" : 0.0
}
],
"paperFormat" : "A3"
},
"additionalVariables" :{
"<image>" : {
"x" : 70,
"y" : 100,
"height" : 100,
"width" : 100,
"rotation" : 90
}
}
}