#3927: Создание шаблона этикетки для TSC на языке TSPL

Отредактирована: 22 дня назад

Простое создание шаблона на языке TSPL

Все написаное ниже позволяет создать шаблоны на языке TSPL с использованием всех его возможностей.
Для удобного и простого создания шаблонов в редакторе воспользуйтесь этой статьей.

Что представляет собой шаблон этикетки для принтера TSC

Шаблон этикетки для принтеров TSC представляет собой текстовый файл с набором команд языка TSPL. Указанный файл должен иметь расширение tmpl и загружен в шаблон этикетки 1С
Команды делятся на:

  • Сервисные. Они указывают принтеру размер этикетки, расстояния между этикетками и включают различные режимы работы.
  • Команды графических примитивов. Эти команды рисуют на виртуальном холсте необходимые примитивы: текст, штрихкод, изображение.
  • Директивы. Эти команды указывают принтеру выполнить действие. Например, PRINT печатает на этикетку все, что нарисовано на виртуальном холсте

Размеры и координаты расположения элементов в шаблоне указываются в точках принтера. Для принтера с головой 300dpi в одном миллиметре 12 точек.
Т. е. для того, чтобы верно указать размер вычислите его в миллиметрах и умножьте на 12.
Исключение составляют размеры шрифтов TTF, они указываются в пунктах, в тех же единицах, что и в Word.

Как использовать данные из 1С/МДТ в шаблоне

Перед отправкой на принтер МДТ производит замену в файле шаблона имен переменных в квадратных скобках [] на значение этих переменных.
Имена переменных должны быть определены в шаблоне 1С.

Дополнительные файлы

В шаблоне могут быть использованы шрифты TTF и изображения в формате BMP, PCX и PNG.
Эти файлы должны быть загружены в шаблон 1С и загружаются в DRAM принтера при входе в задание.

Для изображений настоятельно рекомендуется использовать черно-белый формат BMP с разрешением цвета 1 бит/пиксель.

Пример текстового файла с шаблоном этикетки.

REM Обязательный заголовок. Задаются размеры этикетки 100х150мм, 
REM Расстояние между этикетками 3мм и кодовая страница UTF-8 в 
REM которой 1С пришлет содержимое. Кодовая страница всегда должна быть UTF-8
SIZE 100 mm,150 mm
GAP 3 mm, 0
CODEPAGE UTF-8

REM Содержимое этикетки
REM Очистка холста. Обязательная команда
CLS

REM Блок текста с названием расположенный в 2 мм от краев этикетки, размером 59х27мм 
REM шрифтом высотой 18 пунктов. Содержимое текста берется из поля name шаблона 1С
BLOCK 24,24,708,324,"ARIAL.TTF",0,18,0, "[name]"

REM Блок описания продукта шрифтом высотой 10 пунктов
REM Содержимое текста берется из поля description шаблона 1С
BLOCK 24,360,708,912,"ARIAL.TTF",0,10,0, "[description]"

REM Код EAN13 повернутый на 270 градусов, с нижним левым углом смещенным вниз на 105мм и вправо на 62мм
REM высота основных штрихов кода 29.1 мм, с цифрами выровненными по центру кода, с шириной штриха 1мм
REM Код состоит из постоянного префикса 2000000 и переменной ean_weight шаблона 1С
BARCODE 744,1260,"EAN13",350,2,270,12,12,"2000000[ean_weight]"

REM Datamatrix с размером модуля 0.83мм
REM Содержимое кода состоит из символа FNC1 и содержимого переменной barcode из 1С
DMATRIX 744,1284,468,468,c126,x10,r0, "~1[barcode]"

BLOCK 24,1392,228,264,"ARIAL.TTF",0,10,0, "Изготовлено и упаковано:"

REM Строка текста с левым верхним углом смещенным на 2мм вправо и 139.2мм вниз.
TEXT 24,1670,"ARIAL.TTF",0,12,0, "[production_date]"
BLOCK 252,1392,228,264,"ARIAL.TTF",0,10,0, "Годен до:"
TEXT 252,1670,"ARIAL.TTF",0,12,0, "[best_before]"
BLOCK 480,1392,228,264,"ARIAL.TTF",0,10,0, "Масса нетто:"
TEXT 480,1670,"ARIAL.TTF",0,12,0, "[weight]"

REM Печать этикетки в одном экземпляре
PRINT 1,1

Дополнительная полезная информация