Как распечатать отчет в формате ZPL

16.01.2018

В новой версии FastReport .NET 2018.1 добавлен экспорт в формат ZPL (Zebra Programming Language). Этот формат предназначен для использования совместно со специальными этикеточными принтерами. Подробнее о ZPL можно узнать в статье «Язык описания страниц печати – ZPL».

При разработке отчетов, которые предполагается печатать на принтере этикеток нужно учитывать следующие моменты:

  • размеры страницы должны совпадать с размерами этикетки, настроить размеры можно в дизайнере отчетов в меню Report – Page Setup;
  • поля, заданные в окне установки размеров страницы также учитываются – если есть необходимость печатать близко к краю этикетки, то нужно установить поля равные 0;
  • каждая сформированная страница отчета будет отправлена на принтер как отдельная этикетка;
  • при оформлении отчета следует придерживаться черно-белой цветовой гаммы.

Сформировать файл с набором ZPL команд можно из окна предварительного просмотра отчета.

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

    Включенный чекбокс Print As Bitmap указывает, что на принтер будет отправлена попиксельная копия изображения отчета. Иными словами - будет сформировано черно-белое изображение отчета и сохранено как картинка в ZPL формате. Если этот чекбокс выключен, то объекты отчета будут сохранены как последовательность ZPL команд. Текстовые значения сохраняются в кодировке UTF-8, баркоды (те, что имеют соответствующие аналоги в ZPL) передаются как отдельные команды. Следует иметь в виду, что при печати отчета в виде картинки, баркоды могут быть нечитаемыми, несмотря на то, что они будут выглядеть идентично тем, что мы получили в отчете. Причина такого поведения баркодов – неверное соотношение толщины линий из-за маштабирования объекта баркода. Чтобы избежать ошибок чтения баркодов, следует отключить режим Print As Bitmap, но в таком случае возможно несоответствие внешнего вида баркодов тем, которые мы видим в окне предварительного просмотра.

    Параметр Font Scale отвечает за масштабирование размера шрифта.

    При отсутствии под рукой принтера этикеток или в целях экономии, можно протестировать сохраненный файл в Online ZPL Viewer (эмулятор ZPL) http://labelary.com/viewer.html - откройте сформированный файл с расширением *.zpl в любом текстовом редакторе, скопируйте его содержимое в текстовое поле ввода на сайте и нажмите кнопку Redraw.

    Произвести дополнительные настройки экспорта в ZPL и отправить его на печать непосредственно на этикеточный принтер можно из кода программы. Посмотрите демонстрационную программу в папке \Demos\C#\PrintZPL.

    Вот так выглядит ее главная форма:

 

Вначале вы выбираете шаблон отчета, затем задаете параметры экспорта и выбираете принтер для печати. Это должен быть принтер, поддерживающий систему команд ZPL -  в нашем случае это принтер Zebra ZD420.

В коде программы можно посмотреть, как осуществляется управление настройками экспорта в формат ZPL – свойствами объекта класса ZplExport:

Свойство

Описание

ZplExport.Density

Плотность печати – зависит от модели принтера.

Возможные значения:

ZplExport.ZplDensity.d6_dpmm_152_dpi,
ZplExport.ZplDensity.d8_dpmm_203_dpi,
ZplExport.ZplDensity.d12_dpmm_300_dpi,
ZplExport.ZplDensity.d24_dpmm_600_dpi.

ZplExport.CodePage

Команда на языке ZPL, определяющая кодировку символов. Отправляется на принтер каждый раз перед началом печати этикетки. По умолчанию содержит строку “^CI28”, которая соответствует кодировке UTF-8.

ZplExport.FontScale

Масштабирование размера шрифта.  По умолчанию равно 1.

ZplExport.PrinterFont

Строка с указанием вида шрифта, по умолчанию равна “A”.

ZplExport.PrintAsBitmap

Печатать как растровое изображение. По умолчанию установлено в true.

ZplExport.PrinterInit

Строка с набором команд, которые будут однократно отправлены на принтер перед началом печати отчета. Может быть использована для установки ориентации, переопределения шрифтов или других настроек принтера.

ZplExport.PrinterFinish

Строка с набором команд, которые будут однократно отправлены на принтер после печати отчета.

ZplExport.PageInit

Строка с набором команд, которые будут отправлены на принтер перед печатью каждой этикетки.

 Отправка на печать осуществляется с помощью метода FastReport.Export.Text.TextExportPrint.PrintStream, который передает поток с ZPL командами в очередь печати принтера этикеток.

20 ноября 2024

Локализация и смена языков в FastReport VCL

FastReport VCL поддерживает 40 языков для локализации интерфейса и позволяет изменять язык на лету через меню или код, без перекомпиляции.
1 ноября 2024

Новые возможности редактора отчетов FastReport VCL

Рассматриваем новые возможности редактора отчетов: выносные линии, подсветка пересекающихся объектов, обновлённые деревья отчетов и данных.
30 октября 2024

Использование стилей при создании отчетов в FastReport VCL

В статье подробно рассматривается одна из новых возможностей FastReport VCL – применение стилей и страниц стилей.