使用ZPL控制Zebra打印机

news2025/1/10 23:46:37

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/75363.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Python学习基础笔记三十四——爬虫小例子

一个爬虫小例子&#xff1a; import requestsimport re import jsondef getPage(url):responserequests.get(url)return response.textdef parsePage(s):comre.compile(<div class"item">.*?<div class"pic">.*?<em .*?>(?P<id&…

Nginx的access.log日志分析工具-goaccess

一、安装goaccess wget http://tar.goaccess.io/goaccess-1.3.tar.gz --no-check-certificate #下载tar包 tar -xzvf goaccess-1.3.tar.gz #解压tar包 cd goaccess-1.3/ #进入目录 ./configure --enable-utf8 --enable-geoiplegacy --prefix/opt/goaccess #检测环境&…

宝塔严重未知安全性漏洞(宝塔面板或Nginx异常)

问题简述 论坛上的帖子 https://www.bt.cn/bbs/thread-105054-1-1.html https://www.bt.cn/bbs/thread-105085-1-1.html https://hostloc.com/thread-1111691-1-1.html 数据库莫名被删 https://www.bt.cn/bbs/thread-105067-1-1.html 以下内容来自群友消息&#xff1a; 速报:宝…

大学生餐饮主题网页制作 美食网页设计模板 学生静态网页作业成品 dreamweaver美食甜品蛋糕HTML网站制作

&#x1f468;‍&#x1f393;静态网站的编写主要是用HTML DIVCSS JS等来完成页面的排版设计&#x1f469;‍&#x1f393;,常用的网页设计软件有Dreamweaver、EditPlus、HBuilderX、VScode 、Webstorm、Animate等等&#xff0c;用的最多的还是DW&#xff0c;当然不同软件写出的…

以太网 网线分类

1. 双绞线分类 一类线&#xff1a;主要用于传输语音&#xff08;一类标准主要用于八十年代初之前的电话线缆&#xff09;&#xff0c;不同于数据传输。 二类线&#xff1a;传输频率为1MHZ&#xff0c;用于语音传输和最高传输速率4Mbps的数据传输&#xff0c;常见于使用4MBPS规范…

【Android gradle】自定义一个android gradle插件,并发布到私有Artifactory仓库

1. 前言 最近工作部分内容涉及到gradle 插件的编写&#xff0c;在粗浅了解和编码之余来简单梳理下编写一个gradle 插件的相关用法。这里编写的插件还是发布到在前面两篇博客中的Artifactory仓库中。一共分为如下几步&#xff1a; 配置定义gradle插件、上传到 Artifactory仓库…

基于单片机的加热炉炉温控制系统设计

目 录 摘 要 I Abstract II 第1章 绪论 1 1.1课题背景及意义 1 1.2发展现状 2 1.3研究主要内容 3 第2章 加热炉炉温控制系统总体方案设计 4 2.1总体方案的确定 4 2.2加热炉炉温控制系统组成 5 第3章 加热炉炉温控制系统技术和算法介绍 6 3.1 AT89C51简介 6 3.1.1单片机的引脚介…

Crossover2023mac苹果电脑系统上运行Windows程序虚拟机工具模拟器

CrossOver是一款可以让Mac和Linux系统中正常运行Windows软件的应用程序。它不像虚拟机一样需要安装Windows系统之后才可以安装Windows的应用程序&#xff0c;这一方式给大多数用户带来了方便。通过CrossOver实现跨平台的文件复制粘贴&#xff0c;使Mac/Linux系统与Windows应用良…

海康视频回放,rtsp视频接口转换成.m3u8格式文件

通过海康接口返回的rtsp视频接口&#xff0c;转换成.m3u8格式文件&#xff0c;逻辑如下 1、采用ffmpeg实时转化rtsp链接视频&#xff0c;转化为m3u8&#xff0c;存放服务器固定地址 2、采用nginx代理视频成.m3u8视频 3、采用tokenredis方式处理视频播放和删除过程&#xff0…

太好玩了,我用 Python 做了一个 ChatGPT 机器人

大家好&#xff0c;我是早起。 毫无疑问&#xff0c;ChatGPT 已经是当下编程圈最火的话题之一&#xff0c;它不仅能够回答各类问题&#xff0c;甚至还能执行代码&#xff01; 或者是变成一只猫 因为它实在是太好玩&#xff0c;我使用Python将ChatGPT改造&#xff0c;可以实现在…

亚马逊黑五哑火,中国跨境电商高歌猛进!

黑五作为一个类似于中国双11的全球性购物狂欢节&#xff0c;在11月的最后一周拉开帷幕&#xff0c;据有关业内人士称&#xff0c;作为拥有众多全球站的亚马逊电子商务平台在此次黑色星期五的促销狂欢节中表现似乎稍显停滞&#xff0c;其作为电商领域的龙头企业&#xff0c;没能…

数据结构基础--图

一、图的基本概念 1.图的定义 图是由顶点集合V和边集合E组成的&#xff0c;记为G(G,V)。图可以只有点没有边&#xff0c;但不能只有边没有点。边&#xff1a;用&#xff08;x&#xff0c;y&#xff09;表示为xy之间的一条无向边&#xff1b;用<x,y>表示xy之间的一条有向…

大数据开发适合哪类人群?

有不少应届大学毕业生和0基础人群选择学大数据&#xff0c;但是要选择零基础的大数据培训班&#xff0c;从Java基础开始学习&#xff0c;由浅入深掌握离线数据分析、实时数据分析和内存数据计算等重要内容。 应届大学生缺乏工作经验和技能&#xff0c;对未来没有明确的规划&am…

VTK- PointLocator

欢迎大家加入VTK社区雪易VTK社区-CSDN社区云 小结&#xff1a;本博文主要针对VTK中的PointLocator的分类及各接口的用途进行讲解&#xff0c;PointLocator主要用途为点的位置计算&#xff0c;希望能为各位小伙伴有所帮助。 vtk中关于Locator的关系图 目录 vtkLocator vtkAbs…

软件测试基础理论体系学习4-单元测试的目的?概念是什么?过程是什么?

4-单元测试的目的&#xff1f;概念是什么&#xff1f;过程是什么&#xff1f;1 单元测试目的1.1 单元测试的错误认识1.2 单元测试的重要性1.2.1 时间方面1.2.2 测试效果1.2.3 测试成本1.2.4 产品质量1.3 单元测试的优点1.3.1 它是一种验证行为1.3.2 它是一种设计行为1.3.3 它是…

CPU是什么

CPU&#xff08;Central Processing Unit&#xff09;是计算机系统的运算和控制核心&#xff0c;是信息处理、程序运行的最终执行单元&#xff0c;相当于系统的“大脑”。当 CPU 过于繁忙&#xff0c;就像“人脑”并发处理过多的事情&#xff0c;会降低做事的效率&#xff0c;严…

Postman安装和运行

下载安装 Postman是一个方便用于构造请求的软件.可以以简单的方式来构造请求. 要下载软件,还是同样的话,要去官网下载.这里我们直接将官网地址放在这里. https://www.postman.com/downloads/ 进入官网以后,点击windows 64-bit(图中圈起来的部分)即可下载. 下载好以后双击安…

java小技能:JWT认证实现

文章目录 引言I. 预备知识1.1 关键字去空格处理II token组成2.1 头部(Header)2.2 有效载荷(Playload)2.3 签名(Signature)2.4 代码实现:生成tokenIII 验证token3.1 网关验证token3.2 使用拦截器验证token引言 认证流程 I. 预备知识 1.1 关键字去空格处理

前端复制粘贴方式上传图片

最近在做一个论坛的项目&#xff0c;发布评论的时候&#xff0c;很多时候会用到截图上传的功能&#xff0c;通过微信截图&#xff0c;QQ截图&#xff0c;直接将截取的图片通过Ctrlv 复制到输入框里&#xff0c;自动上传将图片渲染到页面上&#xff0c;今天就来实现一个这样的功…

BOS金蝶云星空:表单插件设置单据体背景色

一.效果图&#xff1a; 备注&#xff1a;只适用于只读列 二.代码案例&#xff1a; 自定义单据提附加背景色方法&#xff1a; /// /// 设置单据体背景颜色 /// /// 实体 /// 行 /// 字段 /// 颜色代码 private void SetEntityBackgoundColor(string entityKey, int row, st…