使用ZPL控制Zebra打印机

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 Zebra

z = 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 settings

z.output( commands )
  #Output raw commands to the printer

参考资料:

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

  • 3
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值