使用ZPL控制Zebra打印机
创始人
2024-04-20 10:07:35
0

ZPL简介:

Zebra编程语言 (ZPL)是所有 ZPL 兼容打印机使用的命令语言。可用于绘制文本、形状、条形码和图像等元素,组合这些元素。打印机使用它作为指令来创建打印在标签上的图像。

想要打印一个标签,您可能需要告诉打印机:

  • 产品名称是什么,在哪里打印,使用什么字体。
  • 你想使用什么样的条形码,你想把它放在哪里,以及要编码的 SKU 编号。
  • 框位置、框大小和框线的粗细。

ZPL语法解析:

ZPL由命令和命令参数组成。
命令以(^)字符开头。
命令名称跟在(^)之后,长度为一个或两个字母,并且不区分大小写。
命令可以有多个参数。
命令参数以逗号(,)字符分隔。
空格(空格、制表符、换行符)大多被忽略;主要的例外是^FD命令,如下所述。

^XA
^LH 00,00
^FO00,00^LH 00,00
^ADN,50,30
^FD matter^FS^LH 20,50
^BQN,2,10
^FDMA,1234-567-89019876-543-21-0^FS^LH 20,330
^ADN,20,20
^FD123-456-8901^FS^LH0,0
^XZ

ZPL命令解析:

  • ^XA 标签的开始

  • ^XZ 标签的结束

  • ^FD 字段数据,字段数据可以是任何可打印的字符,除了用作命令前缀的那些(^ 和 ~)。

  • ^FS 字段分隔符,表示字段定义的结尾,用于完成当前字段并开始新字段。

  • ^LH – 标签主页,设置标签起始位置。
    标签的默认起始位置是左上角(沿 x 和 y 轴的位置 0,0)。 这个是标签的轴参考点。 此点下方和右侧的任何区域都可用于打印。 ^LH 命令改变这个参考点。 例如,当与预印标签,使用此命令将参考点移动到预印区域下方。此命令仅影响其后的字段。 建议使用 ^LH 作为第一个标签格式的命令。

  • ^A font, height, width ^A 指定当前 ^FD 语句或字段的字体。^A 指定的字体仅用于该 ^FD 条目一次。 如果 ^A 的值为未再次指定,默认 ^CF 字体用于下一个 ^FD 条目。
    格式:^Afo,h,w
    在这里插入图片描述

  • ^BQ orientation, model, magnification, errorCorrection, mask
    ^BQ 命令生成一个二维码条形码。
    orientation通常为N,表示普通(Normal)
    QR Code Model 1为原始规范,而QR Code Model 2为增强型的符号。 Model 2 提供附加功能,可自动区分来自模型 1。
    模型 2 是推荐模型,通常应使用。
    此条形码使用在后续 ^FD 字符串中指定的字段数据打印。可编码字符集包括数字数据、字母数字数据、8 位字节数据和汉字
    人物。
    在这里插入图片描述
    上面的示例脚本放到Zebra的在线显示器(http://labelary.com/viewer.html)中检查是否符合要求:
    在这里插入图片描述

使用Python控制Zebra打印机:

Python3包含对Zebra打印的支持(https://pypi.org/project/zebra/)
安装Zebra打印包后(pip install zebra),使用output函数就可以向打印机输出ZPL命令。

from zebra import Zebraz = Zebra(PrinterName)#Constructor with optional printer queue
commands = r"^XA"+r"^FO100,100"+r"^BQN,2,10"+r"^FDMM,AAC-42^FS"+r"^XZ"
#z.reset_default()#Resets the printer to factory settings using EPL2#z.reset()#Resets the printer using EPL2 - equivalent of switching off/on#z.autosense()#Run AutoSense by sending an EPL2 command#Get the printer to detect label and gap length and set the sensor levels#z.print_config_label()#Send an EPL2 command to print label(s) with current config settingsz.output( commands )#Output raw commands to the printer

参考资料:

http://labelary.com/zpl.html
http://labelary.com/docs.html
https://pypi.org/project/zebra

相关内容

热门资讯

银河麒麟V10SP1高级服务器... 银河麒麟高级服务器操作系统简介: 银河麒麟高级服务器操作系统V10是针对企业级关键业务...
【NI Multisim 14...   目录 序言 一、工具栏 🍊1.“标准”工具栏 🍊 2.视图工具...
AWSECS:访问外部网络时出... 如果您在AWS ECS中部署了应用程序,并且该应用程序需要访问外部网络,但是无法正常访问,可能是因为...
不能访问光猫的的管理页面 光猫是现代家庭宽带网络的重要组成部分,它可以提供高速稳定的网络连接。但是,有时候我们会遇到不能访问光...
AWSElasticBeans... 在Dockerfile中手动配置nginx反向代理。例如,在Dockerfile中添加以下代码:FR...
Android|无法访问或保存... 这个问题可能是由于权限设置不正确导致的。您需要在应用程序清单文件中添加以下代码来请求适当的权限:此外...
月入8000+的steam搬砖... 大家好,我是阿阳 今天要给大家介绍的是 steam 游戏搬砖项目,目前...
​ToDesk 远程工具安装及... 目录 前言 ToDesk 优势 ToDesk 下载安装 ToDesk 功能展示 文件传输 设备链接 ...
北信源内网安全管理卸载 北信源内网安全管理是一款网络安全管理软件,主要用于保护内网安全。在日常使用过程中,卸载该软件是一种常...
AWS管理控制台菜单和权限 要在AWS管理控制台中创建菜单和权限,您可以使用AWS Identity and Access Ma...