使用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

相关内容

热门资讯

保存时出现了1个错误,导致这篇... 当保存文章时出现错误时,可以通过以下步骤解决问题:查看错误信息:查看错误提示信息可以帮助我们了解具体...
汇川伺服电机位置控制模式参数配... 1. 基本控制参数设置 1)设置位置控制模式   2)绝对值位置线性模...
不能访问光猫的的管理页面 光猫是现代家庭宽带网络的重要组成部分,它可以提供高速稳定的网络连接。但是,有时候我们会遇到不能访问光...
不一致的条件格式 要解决不一致的条件格式问题,可以按照以下步骤进行:确定条件格式的规则:首先,需要明确条件格式的规则是...
本地主机上的图像未显示 问题描述:在本地主机上显示图像时,图像未能正常显示。解决方法:以下是一些可能的解决方法,具体取决于问...
表格列调整大小出现问题 问题描述:表格列调整大小出现问题,无法正常调整列宽。解决方法:检查表格的布局方式是否正确。确保表格使...
表格中数据未显示 当表格中的数据未显示时,可能是由于以下几个原因导致的:HTML代码问题:检查表格的HTML代码是否正...
Android|无法访问或保存... 这个问题可能是由于权限设置不正确导致的。您需要在应用程序清单文件中添加以下代码来请求适当的权限:此外...
【NI Multisim 14...   目录 序言 一、工具栏 🍊1.“标准”工具栏 🍊 2.视图工具...
银河麒麟V10SP1高级服务器... 银河麒麟高级服务器操作系统简介: 银河麒麟高级服务器操作系统V10是针对企业级关键业务...