Управление принтером заключается в передаче специальных управляющих команд. Команды используются для изменения шрифта, печати штрих-кода, печати картинки и т.д. Для управления предназначен тег printer. Выполняемая операция задается атрибутом op:

  • setfont – изменение шрифта,
  • resetfont – сброс установленного шрифта,
  • cut – отрезка чека,
  • barcode – печать штрих-кода,
  • picture – печать картинки из памяти принтера,
  • picturefromfile – печать картинки из файловой системы.

Дополнительные атрибуты для изменения шрифта (setfont)

НаименованиеТип данныхВозможные значенияОписаниеПримечания
sizeстроковый
  • normal – нормальный
  • enlarge – увеличенный
  • compressed – сжатый
  • doublewidth – двойной ширины
  • smaller – уменьшенный
  • doubleheight – двойной высоты
  • underlined – подчеркнутый
Размер шрифта

Поддерживаемые шрифты зависят от типа используемого устройства.

Значение может быть задано в переменной без обрамления знаком "$"

linespacingстроковый
  • число от 1 до 255
  • auto – значение по умолчанию
Межстрочный интервал

Функционал поддержан для принтеров, работающих по протоколу Epson (Posbank, Senor).
Особенности отображения межстрочного интервала зависят от модели ФР, его настроек и версии прошивки.

Значение может быть задано в переменной без обрамления знаком "$"

Пример установки шрифта в шаблоне
# изменение шрифта, установка размера "увеличенный"
<printer op="setfont" size="enlarge"/>
# сброс размера установленного шрифта
<printer op="resetfont"/>
Пример установки шрифта из переменной
# ранее в переменной fontString было задано значение "doublewidth"
# изменение шрифта, установка размера из переменной
<printer op="setfont" size="fontString"/> # атрибут size примет значение "doublewidth"

Если переменная не найдена, то будет использовано ее символьное представление. В этом случае size примет значение равное строке "fontString".
  • Фискальный регистратор Пилот FP410K не поддерживает подчеркнутый шрифт (underlined) и шрифт двойной высоты (doubleheight).
  • СП101 не поддерживает уменьшенный шрифт (smaller).
Пример установки межстрочного интервала в шаблоне
# изменение межстрочного интервала, установка значения "10"
<printer op="setfont" linespacing="10"/>

# сброс межстрочного интервала, установка значения по умолчанию
<printer op="setfont" linespacing="auto"/> 

При изменении шрифта или межстрочного интервала изменяется размер области печати, это необходимо учесть при форматировании.

Дополнительные атрибуты печати штрих-кода (barcode)

НаименованиеТип данныхВозможные значенияОписаниеПримечания
typeстроковый
  • UPCA (11≤n≤12)
  • UPCE (11≤n ≤12)
  • EAN13 (12≤n ≤13)
  • EAN8 (7≤n ≤8)
  • CODE39 (1≤n ≤255)
  • INTERLEAVED2OF5 (1≤n ≤255 только четное количество символов)
  • CODABAR (01≤n ≤255)
  • CODE128
  • QR
Тип штрих-кодаЗависит от используемого устройства.

Атол: только EAN13 и QR.

Атол 5.0: EAN8, EAN13, CODE128, INTERLEAVED2OF5, QR.

Штрих-М: только EAN13 и QR.

Epson: UPCA, EAN13, EAN8, CODE39, INTERLEAVED2OF5, CODE128, QR.

Подробнее о поддержке печати QR-кода описано ниже

widthцелочисленный

Атол: от 1 до 4
Атол 5.0: от 1 до 2
Штрих-М: не используется
Пирит: от 2 до 4
SP101: от 2 до 4
FP410: от 1 до 6

Ширина

Зависит от используемого устройства

heightцелочисленный

Атол: не используется
Атол 5.0: от 1 до 255
Штрих-М: не используется
Пирит: от 1 до 255
SP101: от 1 до 255
FP410: от 1 до 125

ВысотаЗависит от используемого устройства
barcodeстроковый
Штрих-кодДопускает использование параметров
showmodeстроковый
  • SHOW_NONE – не печатать
  • SHOW_UP – печать сверху
  • SHOW_DOWN – печать снизу
  • SHOW_UP&DOWN – печать сверху и снизу
Режим отображения кодаЗависит от типа используемого устройства
Пример использования тега <printer> для печати штрих-кода:
<printer op="barcode" type="EAN13" showmode="SHOW_DOWN" barcode="4792156009926" width="2" height="20"/>
Пример использования тега <printer> для печати QR-кода:
<printer op="barcode" type="QR" barcode="http://rssib.ru"/>

Значение barcode при печати QR-кода не должно превышать 256 символов в соответствии с руководством по эксплуатации УТМ.

Если принтер не поддерживает печать заданного типа штрих-кода команда пропускается.

Пример печати EAN13 на ФР Атол 5.0 при ширине чековой ленты 80 мм
Дополнительные атрибуты печати: width="1" height="20"Дополнительные атрибуты печати: width="2" height="20"

Печать QR-кода через изображение

Новые модели принтеров, разрабатываемые с 2014 года, поддерживают печать QR-кода. Если принтер не имеет встроенных методов для печати QR-кода, но позволяет печатать изображения, то в кассовом ПО на основании входных данных генерируется изображение QR-кода, которое печатается на чеке. 

Скорость печати QR-кода через изображение существенно медленнее и зависит от скорости подключения ФР. Примерные значения:

  • при скорости подключения 115200 скорость печати составляет порядка 3 секунд,
  • при скорости подключения 9600 скорость печати составляет порядка 11 секунд.

В таблице приведен перечень принтеров, которые  не  поддерживают печать QR-кода встроенными методами.

Модель принтераПримечания
Штрих-М
ЭЛВЕС-МИНИ-ФР-Ф
ФЕЛИКС-Р Ф

ШТРИХ-ФР-К v.01


ШТРИХ-950К


ЭЛВЕС-ФР-К


ШТРИХ-КОМБО-ФР-К


Штрих-POS-Ф
ШТРИХ-950К v.02
ШТРИХ-КОМБО-ФР-К v.02 
ШТРИХ-КИОСК-ФР-К
ШТРИХ-М-ФР-Кподдерживается печать QR-кода через изображение
ШТРИХ-LIGHT-ФР-Кподдерживается печать QR-кода через изображение
ШТРИХ-500поддерживается печать QR-кода через изображение
NCR-001K
SurtPrint BK
АСПД ШТРИХ-МИНИ
АСПД ШТРИХ
АСПД ШТРИХ-950
АСПД ШТРИХ-КОМБО
ЭЛВЕС-ПРИНТ
ШТРИХ-ФР-Ф v.04поддерживается печать QR-кода через изображение
ШТРИХ-ФР-Ф (Казахстан) поддерживается печать QR-кода через изображение
ШТРИХ-ФР-Ф (Белоруссия)поддерживается печать QR-кода через изображение
ШТРИХ-МИНИ-ФР-Кподдерживается печать QR-кода через изображение
ШТРИХ-МИНИ-ФР-К v.02, 57 ммподдерживается печать QR-кода через изображение
ШТРИХ-М-ФР-К 57ммподдерживается печать QR-кода через изображение
ШТРИХ-LightPOS-Kподдерживается печать QR-кода через изображение
АСПД ШТРИХ-Мподдерживается печать QR-кода через изображение
АСПД ШТРИХ-LIGHTподдерживается печать QR-кода через изображение
Атол
ККТ Триум-Ф
ККТ ФЕЛИКС-02К
ККТ «Меркурий-140Ф» АТОЛ
ККТ Меркурий MS-K
ККТ ФЕЛИКС-Р К
ККТ ФЕЛИКС-3СК
ККТ FPrint-02K
ККТ FPrint-03K
ККТ FPrint-5200Kподдерживается печать QR-кода через изображение
ККТ PayVKP-80K
ККТ FPrint-88 Kподдерживается печать QR-кода через изображение
ККТ PayPPU-700Kподдерживается печать QR-кода через изображение
ККТ PayCTS-2000Kподдерживается печать QR-кода через изображение
Пилот
FP410K (версия прошивки меньше 60)
Пирит
Пирит ЕНВД
Пирит ФР01К
Сервис Плюс

СП101ФР-К

поддерживается печать QR-кода через изображение

СП402ФР-К

поддерживается печать QR-кода через изображение

Дополнительные атрибуты печати картинки из ФР (picture)

Для печати изображения необходимо загрузить его в ФР. Подробнее об этом можно прочитать в статье "Программирование и печать изображений в ФР".

НаименованиеТип данныхВозможные значенияОписание
numberцелочисленный

1..255

Номер печатаемой картинки из внутреннего массива картинок
offsetцелочисленный0..65535Смещение картинки в пикселях
startlineцелочисленный1…200Начальная линия
endlineцелочисленный1…200Конечная линия
typeцелочисленный
  • 0
  • 1
  • 2

Тип графики:

  • 0 – простая,
  • 1 – расширенная,
  • 2 – графика-512.

Расширенный тип графики не поддержан на ФР Штрих.

Пример использования тега <printer> для печати картинки из памяти ФР
<printer op="picture" number="1" offset="0" startline="1" endline="200" type="2" />

Для печати второго и последующих изображений после чека необходимо создать новый отчет *.xml в директории /linuxcash/cash/reports/, который содержит информацию об изображении:

Пример test.xml
<report name = "test" type="document" cached="true" >
<printer op="picture" number="1" offset="0" startline="210" endline="722" type="2" />
<printer op="cut" />
</report>
Для каждого изображения необходимо создать отдельный отчет *.xml.

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

Дополнительные атрибуты печати картинки из файловой системы (picturefromfile)

Функционал поддержан только для ФР Атол версии 5.0.

Для печати изображения необходимо указать прямой путь до изображения в файловой системе. Подробнее об этом можно прочитать в статье "Программирование и печать изображений в ФР".

НаименованиеТип данныхВозможные значенияОписание
filepathстроковый


Прямой путь до изображения в файловой системе
alignцелочисленный
  • 0
  • 1
  • 2

Выравнивание изображения по горизонтали:

  • 0 – по левому краю,
  • 1 – по центру,
  • 2 – по правому краю.
Пример использования тега <printer> для печати картинки из файловой системы
<printer op="picturefromfile" filepath="/root/template.bmp" align="1"/>

Отрезка чека (cut)

Атрибут cut используется для отрезки чека.

Пример использования тега <printer> для выполнения отрезки чека
<printer op="cut" />
  • No labels