Управление принтером заключается в передаче специальных управляющих команд. Команды используются для изменения шрифта, печати штрих-кода, печати картинки и т.д. Для управления предназначен тег printer. Выполняемая операция задается атрибутом op:
-
setfont– изменение шрифта, resetfont– сброс установленного шрифта,cut– отрезка чека,-
barcode– печать штрих-кода, picture– печать картинки из памяти принтера,picturefromfile– печать картинки из файловой системы.
Дополнительные атрибуты для изменения шрифта (setfont)
Для принтеров Epson реализована возможность указывать несколько шрифтов. Для этого необходимо перечислить их через запятую.
| Наименование | Тип данных | Возможные значения | Описание | Примечания |
|---|---|---|---|---|
| size | строковый |
| Размер шрифта | Поддерживаемые шрифты зависят от типа используемого устройства. Значение может быть задано в переменной без обрамления знаком "$" |
| linespacing | строковый |
| Межстрочный интервал | Функционал поддержан для принтеров, работающих по протоколу Epson (Posbank, Senor). Значение может быть задано в переменной без обрамления знаком "$" |
# изменение шрифта, установка размера "увеличенный" <printer op="setfont" size="enlarge"/> # сброс размера установленного шрифта <printer op="resetfont"/>
# изменение шрифта, установка размера "увеличенный" <printer op="setfont" size="увеличенный"/> # сброс размера установленного шрифта <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 | строковый |
| Тип штрих-кода | Зависит от используемого устройства. Атол: только EAN13 и QR. Атол 5.0: EAN8, EAN13, CODE128, INTERLEAVED2OF5, QR. Штрих-М: только EAN13 и QR. Epson: UPCA, EAN13, EAN8, CODE39, INTERLEAVED2OF5, CODE128, QR. Подробнее о поддержке печати QR-кода описано ниже |
| width | целочисленный | Атол: от 1 до 4 | Ширина | Зависит от используемого устройства |
| height | целочисленный | Атол: не используется | Высота | Зависит от используемого устройства |
| barcode | строковый | Штрих-код | Допускает использование параметров | |
| align | строковый |
| Выравнивание изображения по горизонтали:
| |
| showmode | строковый |
| Режим отображения кода | Зависит от типа используемого устройства |
<printer op="barcode" type="EAN13" showmode="SHOW_DOWN" barcode="4792156009926" width="2" height="20"/>
<printer op="barcode" type="QR" barcode="http://rssib.ru" align="left"/>
Значение barcode при печати QR-кода не должно превышать 256 символов в соответствии с руководством по эксплуатации УТМ.
Если принтер не поддерживает печать заданного типа штрих-кода, команда пропускается.
| Дополнительные атрибуты печати: 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 | целочисленный |
| Тип графики:
Расширенный тип графики не поддержан на ФР Штрих. |
<printer op="picture" number="1" offset="0" startline="1" endline="200" type="2" />
Для печати второго и последующих изображений после чека необходимо создать новый отчет *.xml в директории /linuxcash/cash/reports/, который содержит информацию об изображении:
<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 | строковый |
| Выравнивание изображения по горизонтали:
|
<printer op="picturefromfile" filepath="/root/template.bmp" align="center"/>
Отрезка чека (cut)
Атрибут cut используется для отрезки чека.
<printer op="cut" />


