Как распечатать отчет в формате 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 командами в очередь печати принтера этикеток.

.NET FastReport ZPL Экспорты
10 июля 2026

Как настроить Content Security Policy для отчетов FastReport .NET WEB

Узнайте, как настроить Content Security Policy для отчётов FastReport .NET WEB: обзор директив и значений CSP, изменения в архитектуре FastReport, типичные сценарии обхода и способы защиты.
22 июня 2026

Как настроить отчет с Business Objects из кода и дизайнера в FastReport .NET

В этой статье рассматривается реальный пример создания и использования шаблона отчета .frx для подключения к иерархическим бизнес-объектам в FastReport .NET.
21 апреля 2026

Использование водяных знаков в FastReport VCL

В статье подробно рассмотрели функционал добавления водяных знаков в FastReport VCL — как через визуальный интерфейс, так и программно, с помощью кода на Delphi и в скриптах отчётов.

Не является публичной офертой
© 1998-2026 ООО «Быстрые отчеты»