Шрифты и печать русских текстов на принтер Zebra

Категории:  Архив
Последние изменение: 13.08.2019

Не всегда существуют русские шрифты для конкретной модели принтера, а существующие могут не подходить по размеру. В таком случае можно воспользоваться альтернативным вариантом с помощью печати текста как изображения.

Это устаревшая статья о печати, см. новый раздел по печати и шаблонам этикеток.

Для вывода русских текстов на CPCL в Mobile SMARTS добавлена возможность вставки в этикету кода, который преобразует текст в картинку. Для этого необходимо открыть этикетку в простом текстовом редакторе и написать следующее:

{global::Zebra.CPCL.Text([<название шрифта>, <высота шрифта в миллиметрах>,] [, ,] <текст>, <доступная ширина>)}

Координаты <x>, <y> задаются в единицах, которые в данный момент выбраны текущими (см. руководство по CPCL).

Метод global::Zebra.CPCL.Text возвращает команду UG и соответствующую картинку. Из шрифтов доступны «Tahoma» и «Courier New».

Например:

{global::Zebra.CPCL.Text("Tahoma", 3, 0, 26, "Русский текст", 360)} {global::Zebra.CPCL.Text("Tahoma", 3, "Русский текст", 360)} 


Также можно координаты текста пропускать, и указывать следующее:

[CPCL]
! 0 200 200 290 1
PAGE-WIDTH 390 ; SetFont(<название шрифта>, <высота в шрифта миллиметрах>). {global::Zebra.CPCL.SetFont("Tahoma", 4)} {global::Zebra.CPCL.Text("Русский текст", 360)} {global::Zebra.CPCL.Text("Ещё текст", 360)}
{global::Zebra.CPCL.Text("Tahoma", 1.7, "мелкий текст", 360)}
{global::Zebra.CPCL.Text("Tahoma", 1.7, "мелкий текст", 360)}
{global::Zebra.CPCL.Text("Tahoma", 1.7, "мелкий текст", 360)}
{global::Zebra.CPCL.Text("Tahoma", 1.7, "мелкий текст", 360)}
; SetLP(<отступ до> [, отступ после]) в миллиметрах.
{global::Zebra.CPCL.SetLP(10, 0)}
{global::Zebra.CPCL.Text("Tahoma", 1.7, "мелкий текст с отступом 10 мм", 360)}
POSTFEED 20
PRINT

Итог:

 

Параметры, для которых указано «в миллиметрах», работают правильно только при разрешении 200dpi, т.е. только если этикетка начинается на «! X 200 200 ..»

Важное замечание: код global::Zebra не является расширением языка печати и совершенно ничего не знает о том, что мы там пишем на CPCL. То есть вызовы SetLP, выравнивания текста Left|Right/CenterAlign и прочие вещи никак не связаны с SETLP, LEFT/RIGHT/CENTER и прочим в языке CPCL, т.е. одно о другом ничего не знает и друг на друга они не влияют.

Еще одно важное замечание: прямые ("), косые (“) и русские («) кавычки — фактически являются различными символами и не взаимозаменяемы! В качестве "кавычек" для обрамления строк в вызовах Zebra.CPCL следует использовать только прямые (") кавычки. За этим следует следить отдельно, т.к. такую ошибку легко пропустить.