Файл zpl как создать

Обновлено: 04.07.2024

В таблице ниже предоставляет полезную информацию о расширение файла .zpl. Он отвечает на вопросы такие, как:

  • Что такое файл .zpl?
  • Какое программное обеспечение мне нужно открыть файл .zpl?
  • Как файл .zpl быть открыты, отредактированы или напечатано?
  • Как конвертировать .zpl файлов в другой формат?

Оглавление

Мы надеемся, что вы найдете на этой странице полезный и ценный ресурс!

4 расширений и 0 псевдонимы, найденных в базе данных

.zpl
Описание (на английском языке):
ZPL file is a Zoom Player Playlist. Zoom Player is a computer program that plays video and sound files on Windows-based personal computers. .zpl
Описание (на английском языке):
ZPL file is a Zemax Programming Language Source Code. Zemax is an optical design program that is used to design and analyze imaging systems such as camera lenses, as well as illumination systems. .zpl
Описание (на английском языке):
ZPL file is a Zebra Programming Language Document. Zebra Programming Language (ZPL and ZPL II) is a page description language from Zebra Technologies. It is used primarily for labeling applications. .zpl
Описание (на английском языке):
ZPL file is a Zimpl Program Data. Zimpl is a simple language to translate the mathematical model of a problem into a linear or nonlinear (mixed-) integer mathematical program expressed in .lp or .mps file format which can be read and (hopefully) solved by a LP or MIP solver.

Другие типы файлов могут также использовать расширение файла .zpl.

По данным Поиск на нашем сайте эти опечатки были наиболее распространенными в прошлом году:

apl , pl , pzl , spl , xpl , zl , zll , zlp , zol , zp , zp1 , zpk , zpm , zpp

Это возможно, что расширение имени файла указано неправильно?

Мы нашли следующие аналогичные расширений файлов в нашей базе данных:

Windows не удается открыть этот файл:

Чтобы открыть этот файл, Windows необходимо знать, какую программу вы хотите использовать для его открытия.

Если вы не знаете как настроить сопоставления файлов .zpl, проверьте FAQ.

Изменение имени файла расширение файла не является хорошей идеей. Когда вы меняете расширение файла, вы изменить способ программы на вашем компьютере чтения файла. Проблема заключается в том, что изменение расширения файла не изменяет формат файла.

Если у вас есть полезная информация о расширение файла .zpl, напишите нам!

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

Зебры они такие
Механизм формирования этикеток выглядит следующим образом: сначала с машины пользователя (компьютер, терминал сбора данных) на принтер отправляется специальным образом оформленная строка, затем внутренний процессор принтера обрабатывает эту строку, и выводит ее на печать.Но язык, на котором формируется строка для принтера (называется ZPL) на первый взгляд вызывает у непосвящённых нервную икоту и мандраж.
Прошу под кат, всех кто хочет разобраться в данном вопросе.

Пример:

Часть 1. Синтаксис ZPL

Во первых, все измерения в ZPL указываются в точках (points). Поэтому, для более ясного представления вы должны посмотреть в документации на принтер, какая у вас плотность точек на единицу измерения длины.
Сначала кратко пробежимся по основным командам, затем рассмотрим их более подробно в связке.
1. Начало и конец ZPL-кода:
^XA – начало кода, ^XZ – конец кода;

2.Отступы для последующего содержимого:
^FO x,y где: x – отступ от левого края, y – отступ сверху;

3.Разделитель полей:
^FS — обозначает конец определения поля. Буквально можно считать его сигналом конца строки;


4.Масштабируемый текст. Состоит из двух частей, выбор шрифта и ввод текста:
4.1. Выбор шрифта:
^A<название шрифта><ориентация текста>,<высота шрифта в точках>,<ширина в точках>:
<название шрифта> – по-умолчанию стоит A. Точнее ее даже не надо вводить, другие шрифты можно взять из официальной документации:

<ориентация текста>:
N – нормальная ориентация; R – повернуто на 90 градусов по часовой стрелке;
I – перевернуто на 180 градусов; B – повернуто на 270 градусов;

4.2. Вывод текста с параметрами указанными в предыдущем пункте:
^FD<текст>


Повернем, и изменим шрифт:


Изменим шрифт на S:


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

5.Блок текста:

^FB<ширина>,<количество строк>,<пробелы между строками>,<выравнивание текста>,< отступ для второй или последующей строки>
<положение текста> — может принимать значения: L(по левому краю), R (по правому краю), C (по центру), J (растянуть текст по ширине поля);
Обычно я использовал данную команду для центрирования текста, или если необходимо разместить текст в несколько строчек. Если текст не умещается в строку, он начинает накладываться сам на себя. И получается так:


Изменим код, чтобы было две строки, и расстояние между строчками сделаем в 10 точек:


А теперь сделаем отступ для второй строки в 30 точек влево:


6. Рисование прямоугольников:

^GB<ширина>,<высота>,<толщина линии>, (<цвет линии>, <скругление углов>)
В скобках указаны не обязательные параметры.
Цвет линии: B (черный) или W (белый)
Скругление углов указывается цифрой от 0, до 8 (сильное скругление)
Примеры:
С сильным скруглением:



Если хотим нарисовать просто линию, то рисуем прямоугольник с высотой равной 0:


7.Штрихкод состоит из трех команд – первая задает его размеры, вторая настройки и третья — содержание:

7.1.Размеры штрихкода:
^BY<ширина>, (<cоотношение толщин линий>, <высота штрихкода>)

7.2. Настройки штрихкода:
^BC<ориентация>,<высота штрихкода в точках>, <печатать ли расшифровку кода>, <расшифровка кода над штрихкодом>, <режим>
<ориентация> — N – нормальная ориентация; R – повернуто на 90 градусов по часовой стрелке; I – перевернуто на 180 градусов; B – повернуто на 270 градусов;
<печатать ли расшифровку кода>, <расшифровка кода над штрихкодом> — принимают значения Y (да) или N (нет);
<режим> — с этим полем я не разобрался, по умолчанию N;

^BC – штрихкод в стандарте 128 (подробнее Code_128); Есть также еще несколько форматов, но ввиду того, что мне не приходилось ими пользоваться, в данной статье они рассматриваться не будут, и рекомендую посмотреть информацию по ним в официальной документации поставляемой к принтерам Zebra;

7.3. Вывод штрихкода на печать:
^FD<кодируемая информация>

К сожалению, штрихкод нельзя поместить в «коробку», как текст, чтобы отцентрировать по ширине этикетки, и поэтому приходится шаманить с полями и отступами.


Перевернем, и укажем печатать расшифровку сверху (сейчас получилось снизу):


На этом остановимся на рассмотрении основных элементов ZPL, и перейдем к части второй, в которой вкратце рассмотрим механизм отправки информации на принтер.

Часть 2. Печать

Механизм передачи проще некуда. Для этого, мы должны знать IP, где находится принтер, и порт. Далее, формируем поток, который отправляем по указанному адресу, и получаем на выходе этикетку.
Пример на Visual Basic:

Как видите, ничего сложного. Надеюсь, что моя статья, облегчит путь отважным укротителям Зебр.
Засим позвольте откланяться. Жду советов, критики и поддержки.

Описание команд на официальном сайте Zebra: ZPL .

Для наглядности команды я буду выделять жирным шрифтом, параметры постараюсь сделать цветными. Введенный текст и передаваемые переменные оставлю обычными. FT Examples available here , A Examples available here

Простейший пример

Пояснения

Результат

Наглядное изображение результата печати zpl кода

Пример файла для печати

На каждый параметр можно кликнуть чтобы перейти к подробному описанию. Любо просто пролистать вниз.

Пояснения

A1 - это нижний (ближний если смотреть на принтер) левый угол. F4 - верхний (дальний) правый угол.

8 - (t) tag type тип тега. Gen 2 это единственный тип, поддерживаемый Zebra R110Xi4, RZ400, RZ600 и RP4T принтерами.

UHF Принтеры

Допустимые значения: 0 = None
1 = EPC Class 0
2 = EPC Class 0 Plus
3 = EPC Class 1 64-bit
4 = EPC Class 1 96-bit
5 = UCODE EPC 1.19
6 = Impinj Class 0 Plus
7 = ISO 18000-06A
8 = EPC Class 1, Generation 2 (Gen 2)
9 = ISO 18000-06B

Значение по умолчанию: 4
Because some countries restric the frequencies that can be used for RFID, not all tag types listed may be supported by your RFID printer. If you specify a tag type that is not supported, the printer will use the Значение по умолчанию.

Important: If a label format specifies a value for the programming position, this value will be used for the programming position for all labels untill a new position is specified or until the transponder calibration procedure is run.

Absolute Mode:
xxxx = 0 to label lenght (in dot rows). Move the media to the specified position xxxx on the label, measured in dot rows from the label top, before encoding. Set to 0 (no movement) if the transponder is already in the effective area without moving the media.

Relative Mode Forward:
Fxxx = F0 to Fxxx (where xxx is the label length in millimeters or 999), whichever is less). Move media forward, printing bitmap, for xxx millimeters before reading or encoding.

Relative Mode Backward:
Byy = B0 to B30 (in millimeters, 30 mm maximum). Move media backward for yy millimeters before reading or encoding. (Does not apply to the RP4T printer.)

Note: When using a backward program position, allow enough media or liner to ensure that the printer can back up the media wihout the leading edge disappearing under the printhead mechanism.

Значение по умолчанию:

F0 (which moves the leading edge of the label to the print line)

200 - (v) - length of void printout - не рекомендуется использовать 0, т.к. испорченный тэг в таком случае сложнее заметить. Если оставить поле пустым ,, длина void будет равняться длине label

E - (e) - error handling - If an error persists after the specified number of labels are tried, perform this error handling action. Допустимые значения: N = No action (printer drops the label format causing the error and moves to the next queued label). P = Place printer in Pause mode (label format stays in the queue until the user cancels). E = Place printer in Error mode (label format stays in the queue until the user cancels). Значение по умолчанию: N

96 - (n) total bit size of the field. Допустимые значения: 1 to n, where n is the bit size of the tag. Значение по умолчанию: 96

8,3,3,24,20,38 (p1 . p15) - partition sizes - Specify each partition size. These must add up to the total bit size. Допустимые значения: 1 to 64 bit total bit size. Значение по умолчанию: 1.

Таким образом мы показали, что 96 бита раделены на шесть полей содержащих 8, 3, 3, 24, 20, 38

Разделение на поля происходит, естественно, не произвольным образом. В данном примере идёт печать тега в соответствии со стандартом SGTIN-96.

(a) - data to be printed. Допустимые значения: any ASCII string up to 3072 characters
Значение по умолчанию: none - a string of characters must be entered.

Объяснение:

То есть нужно рассматривать всю комбинацию команд.

И при этом не забывать, что мы записываем теги в соответствии со стандартом SGTIN-96

3 - Это номер блока памяти в самом принтере. Мы можем записывать данные в один из 10 000 блоков и затем вызывать из них данные обратно.

This command allows you to read or write to an RFID tag.

Note: When using this command to read a tag, you may use a field variable to print the tag data on the label or to return the data to the host.

Printers That Support This Command: RXi, R110PAX4

Допустимые значения: 0 to 9999
Значение по умолчанию: 0

Допустимые значения: 1 to 256
Значение по умолчанию: 64

8 - отступ слева
24 - отступ сверху Field Typeset

Bar Codes The origin is at the base of the bar code, even when an interpretation is present below the bar code, or if the bar code has guard bars.

Graphic Boxes The origin is at the bottom-left corener of the box.

Images The origin is at the bottom-left corner of the rectangular image area.

When a coordinate is missing, the position following the last formatted field is assumed. This remembering simplifies field positioning with respect to other fields. Once the firest field is positioned, other fields follow automatically.

Основные команды

RFID калибровка

start
position=B9 MM,A2,25,25
leading edge
B20, , ,A2,29,29
B19, , ,A2,29,29
B18,R, ,A2,29,29
B17, , ,A2,29,29
B16, , ,A2,29,29
B15,R,W,A2,17,21
B14,R,W,A2,11,15
B13,R,W,A2,7,11
B12,R,W,A2,5,9
B11,R,W,A2,5,7
B10,R,W,A2,5,9
B9,R,W,A2,5,11<---**** B9 MM,A2,25,25
B8,R,W,A2,11,15
B7,R,W,A2,23,23
B6, , ,A2,29,29
B5,R,W,A2,25,25
B4,R,W,A2,25,25
B3,R,W,A2,27,29
B2, , ,A2,29,29
trailing edge
end

Предпросмотр ZPL

Создание штрихкодов

Code 128 has three subsets of characters. There are 106 encoded printing characters in each set, and each character can have up to three different meanings, depending on the character subset being used. Each Code 128 character consists of six elements: three bars and three spaces.

A = Automatic Mode

This analyzes the data sent and automatically determines the best
packing method. The full ASCII character set can be used in the ^FD
statement — the printer determines when to shift subsets. A string of
four or more numeric digits causes an automatic shift to Subset C.

Python скрипты для печати ZPL

Очень часто бывает нужно напечатать большое количество тэгов таким образом, чтобы серийный номер возрастал на 1 у каждого следующего тэга.

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

Формат пусть будет GIAI-96 , код компании помещается в 24 бита, для примера возьмём 1234567

Запишем сперва код для этикетки.

^XA ^CI28 ^PW500^FS ^RW24,26,A2^FS ^RS8,B13,100,1,E^FS ^RB96,8,3,3,24,58^FS ^RFW,E^FD52,0,5,1234567,$,^FS ^FN3^RFR,H^FS ^HV3 ^FWN^FO90, 15^AD,90,22^FDTVS^FS ^FT90,110^A0N,25,25^FH^FDUSER:$ ^FS ^XZ

Для создания скрипта нужно познакомиться с основами языка Python а также с сокетами , которые нужны для работы с сетью

Вообще ZPL расшифровывается как язык программирования зебр (Zebra Programming Language). Есть возможность командами создать нужный дизайн печати будь то какая-либо этикетка или же страница.

Благодаря этому этикетка становится независимой от конкретного устройства печати. Принтер получает команды для произведения фигур, рамок, символов и прочего, и он сам знает, как это сделать. Это является основным отличием ZPL!

Zebra Technologies первоначально создала ZPL для осуществления создания и печати этикеток (с штрих кодами, графическими элементами и любым текстом), которые используют в основном для торговой деятельности.

Немного об этапах формирования ZPL:

Сперва через оборудование (ПК или же терминалы, собирающие информацию) на принтер направляются данные, далее процессор Зебра-принтера производит обработку полученной информации и выводит результат на печать.

ZPL

Немного о составлении ZPL кода:

Мерки для печати производятся в точках, ибо без точного значения будет довольно-таки трудно что-то сделать, не получив ошибок и сбоев. Следует изучить документацию печатного оборудования и узнать какая у него плотность точек (DPI).

Создается сам дизайн следующими командами:

1. Код должен начинаться с тега ^XA, а заканчиваться же ^XZ;

2. А вот тег ^FX предваряет комментарии;

3. ^CF x, y, z – настройки шрифта по умолчанию: сам шрифт, высота и ширина;

4. ^FO x,y - отступы слева и сверху;

5. ^FS – конец строки;

6. Вывести данные с настроенными величинами можно так:

FB<ширина>,<количество строк>,<пробелы между строками>,<выравнивание текста>,< отступ для второй или последующей строки>
<положение текста> :
L - по левому краю,
R - по правому краю,
C - по центру,
J - растянуть текст по ширине поля;

GB<ширина>,<высота>,<толщина линии>,<цвет линии>,<скругление углов>
Цвет линии: B (черный) или W (белый)
Скругление углов указывается значением от 0, до 8.

7. Штрихкод (а ZPL и Zebra-принтер - созданы прямо для штрих-кодов!) состоящий из трех команд:
размеры штрих кода (BY<ширина>,<соотношение толщин линий>, <высота штрих кода>);
его настройки:

BC<ориентация>,
<высота штрих кода в точках>,
<печатать ли расшифровку кода>,
<расшифровка кода штрих кодом>,
<режим> <ориентация> — N – нормальная ориентация;
R – на 90 градусов по часовой стрелке;
I – на 180 градусов;
B – на 270 градусов;
<печатать ли расшифровку кода>,
<расшифровка кода над штрих кодом> — значения Y (да) или N (нет); <режим> — по умолчанию N.

8. Вывод штрих-кода на печать осуществляется через команду - FD<информация>

На самом деле всё не настолько просто, но в общих чертах дает представление о языке ZPL.

Создание ZPL в Delphi / C++Builder / Lazarus

Воспользуемся платформой FastReport VCL, поскольку он сохраняет из Delphi сразу в нужный формат (Zebra Programming Language). Но мы можем использовать больше возможностей — добавить в этикетки картинки, таблицы, штрих коды (и это будут правильные, машиночитаемые штрихкоды!). Понятно, что фотографии пейзажей отправлять на “зебра-принтер” смысла нет, но вот картинку вроде той, что в начале статьи — почему бы нет, если она уместна на наших этикетках!)

Есть два варианта сохранения созданного отчета. Первым, является сохранение через окно предварительного просмотра, а второй — сразу через код на Pascal.

Рассмотрим оба варианта.
За работу! На форму кладем не только нужные нам компоненты для создания отчёта, подключения источников данных, но и компонент для ZPL-экспорта!

Сохраняем ZPL из Delphi/RAD Studio Lazarus с предварительным просмотром

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

ZPL

Создаем требуемый документ.

Перед сохранением смотрим в предпросмотре, корректируем все то, что не понравилось.

Нажимаем пункт “сохранить”.

Выбираем “ZPL file”. Я делаю эту статью с подключенными практически всеми фильтрами экспорта. В вашем случае (если у вас подключен ТОЛЬКО фильтр экспорта ZPL) других пунктов (кроме Prepared Report) в этом меню не будет.

ZPL

У нас высветилось окошко с настройками экспорта нашего файла.

Настраиваем все так, как нам требуется и нажимаем “ОК”.

Далее о настройках:

Page range - диапазон сохранения страниц;
Export Settings:
- Print As Bitmap - печатать как матричное изображение (для штрих-кодов НЕ НАДО этого делать);
- Break lines - ломаные линии;
- Resolution (dpi) - разрешение от 152 до 600 dpi (на самом деле там набор предустановленных значений, ограниченных форматов - мы можем их выбрать - ниже в коде они перечислены);
Save to - сохранение файлом на пк, отправка по почте или же в облачное хранилище;
Open after export - открытие после сохранения.

Сохранение ZPL из кода Delphi / C++Builder / Lazarus.

Как видим, создавать и печатать Zebra-этикетки из Delphi (в Windows-приложениях) и из Lazarus (Linux-приложения) достаточно просто. Именно этот способ используется в миллионах торговых точек по всему миру.

Описание команд на официальном сайте Zebra: ZPL.

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

Простейший пример

Пояснения

Результат

Наглядное изображение результата печати zpl кода

Пример файла для печати

На каждый параметр можно кликнуть чтобы перейти к подробному описанию. Любо просто пролистать вниз.

Пояснения

Change International Font

Read and Write Power Levels

A1 - это нижний (ближний если смотреть на принтер) левый угол. F4 - верхний (дальний) правый угол.

8 - (t) tag type тип тега. Gen 2 is the only tag type valid for Zebra R110Xi4, RZ400, RZ600 and RP4T printers.

Accepted values: 0 = None
1 = EPC Class 0
2 = EPC Class 0 Plus
3 = EPC Class 1 64-bit
4 = EPC Class 1 96-bit
5 = ISO 18000-06B

Default value: 4
Because some countries restric the frequencies that can be used for RFID, not all tag types listed may be supported by your RFID printer. If you specify a tag type that is not supported, the printer will use the default value.

Important: If a label format specifies a value for the programming position, this value will be used for the programming position for all labels untill a new position is specified or until the transponder calibration procedure is run.

Absolute Mode:
xxxx = 0 to label lenght (in dot rows). Move the media to the specified position xxxx on the label, measured in dot rows from the label top, before encoding. Set to 0 (no movement) if the transponder is already in the effective area without moving the media.

Relative Mode Forward:
Fxxx = F0 to Fxxx (where xxx is the label length in millimeters or 999), whichever is less). Move media forward, printing bitmap, for xxx millimeters before reading or encoding.

Relative Mode Backward:
Byy = B0 to B30 (in millimeters, 30 mm maximum). Move media backward for yy millimeters before reading or encoding. (Does not apply to the RP4T printer.)

Note: When using a backward program position, allow enough media or liner to ensure that the printer can back up the media wihout the leading edge disappearing under the printhead mechanism.

F0 (which moves the leading edge of the label to the print line)

200 - (v) - length of void printout

E - (e) - error handling - If an error persists after the specified number of labels are tried, perform this error handling action. Accepted values: N = No action (printer drops the label format causing the error and moves to the next queued label). P = Place printer in Pause mode (label format stays in the queue until the user cancels). E = Place printer in Error mode (label format stays in the queue until the user cancels). Default value: N

96 - (n) total bit size of the field. Accepted values: 1 to n, where n is the bit size of the tag. Default value: 96

8,3,3,24,20,38 (p1 . p15) - partition sizes - Specify each partition size. These must add up to the total bit size. Accepted values: 1 to 64 bit total bit size. Default value: 1.

Таким образом мы показали, что 96 бита раделены на шесть полей содержащих 8, 3, 3, 24, 20, 38

Разделение на поля происходит, естественно, не произвольным образом. В данном примере идёт печать тега в соответствии со стандартом SGTIN-96.

W - (o) - operation - The action to be performed. Accepted values: W = write to the tag. L = write with LOCK (if supported by tag type). R = read the tag. Default value: W.

(a) - data to be printed. Accepted Values: any ASCII string up to 3072 characters
Default Value: none - a string of characters must be entered.

Объяснение:

То есть нужно рассматривать всю комбинацию команд.

И при этом не забывать, что мы записываем теги в соответствии со стандартом SGTIN-96

3 - Почему у нас стоит 3 пока не понятно

This command allows you to read or write to an RFID tag.

Note: When using this command to read a tag, you may use a field variable to print the tag data on the label or to return the data to the host.

Printers That Support This Command: RXi, R110PAX4

o = operation - The action to be performed.
Accepted values: W = write to the tag, L = write with LOCK (if supported by tag type), R = read the tag
Default value: W

b = starting block number - Accepted values: 0 to n, where n is the maximum number of blocks for the tag.
Default value: 0

Accepted values: 0 to 9999
Default value: 0

n = number of bytes to be returned

Accepted values: 1 to 256
Default value: 64

h = header - Header (in uppercase ASCII characters) to be returned with the data.

Acceptable values: 0 to 3072 characters
Default value: no header

8 - отступ слева
24 - отступ сверху Field Typeset

Text The origin is at the start of the character string, at the baseline of the font. Normally the baseline is the bottom of most characters, except for those with descenders, such as g, y et cetera.

Bar Codes The origin is at the base of the bar code, even when an interpretation is present below the bar code, or if the bar code has guard bars.

Graphic Boxes The origin is at the bottom-left corener of the box.

Images The origin is at the bottom-left corner of the rectangular image area.

When a coordinate is missing, the position following the last formatted field is assumed. This remembering simplifies field positioning with respect to other fields. Once the firest field is positioned, other fields follow automatically.

26 , 26 - это высота (h) и ширина (w) , заданные в точках. Examples available here

Читайте также: