【Python_Zebra斑马打印机编程学习笔记(四)】ZPL的一些简单指令

ZPL的一些简单指令

    • ZPL的一些简单指令
    • 前言
    • 一、ZPL 介绍
    • 二、ZPL 语法解析
      • 1、标签开始、标签结束
      • 2、标签原点位置设置
      • 3、标签长度设置
      • 4、标签文本打印深度设置
      • 5、标签打印宽度设置
      • 6、标签方向设置
      • 7、标签元素定位
      • 8、标签绘制矩形
      • 9、标签输入字段
      • 10、标签设置字段字体、大小
      • 11、标签字段设置编码
      • 12、标签字段设置字体标识符
      • 13、标签绘制条形码
      • 14、标签绘制二维码

ZPL的一些简单指令

前言

本文介绍 ZPL 的一些简单指令,有需要的读者可以点赞收藏,也欢迎在评论区进行讨论。

一、ZPL 介绍

ZPL (Zebra Programming Language) 是斑马 (Zebra) 条码打印机工业型号用的编程语言,兼容市面上的大部分条码打印机,可用于绘制文本、形状、条形码和图像等元素,编辑好指令,发送给条码打印机,条码打印机就会把 ZPL 所绘制的标签打印出来。

二、ZPL 语法解析

1、标签开始、标签结束

标签开始: ^XA
标签结束: ^XZ

在一张标签中,ZPL 代码总是以 ^XA 开始,以 ^XZ 结尾,形式大概就是 ^XA+标签内容+^XZ
ZPL 允许在一段代码中绘制多张标签,一堆代码中有几段 ^XA+标签内容+^XZ,就有几张标签;

2、标签原点位置设置

标签原点位置设置: ^LH x, y ,参数为横纵坐标,起始位置为左上角(0,0)位置;

3、标签长度设置

标签长度设置: ^LL length ,参数为需要设置的标签长度;

4、标签文本打印深度设置

标签文本打印深度设置:^MD darknessModifier,参数为标签打印的颜色深度,值越大,颜色越深。范围:0~30;实际使用中根据字体不同,这个指令可能不会生效;

5、标签打印宽度设置

标签打印宽度设置:^PW width,参数为标签打印的宽度;

6、标签方向设置

标签方向设置:^PO orientation,默认参数为N,可选 N 或者 I ,N 默认其实位置为左上角,I 的起始位置为右下角;

7、标签元素定位

标签元素定位:^FO x, y, alignment,参数代表这个元素左上角在标签里的坐标;^FO可以理解为标识这是一个元素(线条、文本、图片等);

8、标签绘制矩形

标签绘制矩形:^GB width, height, thickness, color, rounding,参数为矩形的长和高、矩形边的宽度,线条的颜色(B或W,默认为黑色B),圆角;
示例代码:

^XA
^FO50,80^GB70,100,6,B,5^FS
^XZ

标签预览:
在这里插入图片描述

9、标签输入字段

字段开始:^FD data
字段结束:^FS,也称之为字段分隔符
要输入一段字段,基本格式:^FD标贴Label^FS,如果不通过 ^FO 定位元素为值,字段的起点会在标签的左上角位置出现;

10、标签设置字段字体、大小

标签设置字段字体、大小:^A font, height, width,参数为字段字体、字段高度、字段宽度;
在这里插入图片描述
上图为 ZPL 默认的字体;

11、标签字段设置编码

标签字段设置编码:^CI charset, src1, dest1, src2, dest2, ...,参数为字符集编码,打印中文一般使用 28
示例代码:

^XA
^CI28
^CFJ,30,30
^FO50,50^FD标贴Label^FS
^XZ

标签预览:
在这里插入图片描述

12、标签字段设置字体标识符

标签字段设置字体标识符:^CW fontName, pathfontName 为自定义的字体标识符名称,可以在后续使用;path 为字体文件路径;

关于 ZPL 指令无法显示中文可以参考此篇文章:【Python_Zebra斑马打印机编程学习笔记(三)】解决ZPL指令无法显示中文的问题

13、标签绘制条形码

标签绘制条形码:^BC orientation, height, line, lineAbove, checkDigit, mode

参数说明
orientation方向,可选值为NRIB :N = 从左往右,R = 从下往上,I = 从右往左,B = 从上往下
height条形码高度,单位为点
line是否打印条形码内容,可选值Y/N,默认是Y
lineAbove条形码内容打印位置,可选值为Y/N,默认是N
checkDigit校验数位,可选值为Y/N,默认是N
mode模式,可选值为N/U/A/D

代码示例:

^XA
^FO50,190^BC,80^FD123456^FS
^XZ

标签预览:
在这里插入图片描述

14、标签绘制二维码

标签绘制二维码:^BQ orientation, model, magnification, errorCorrection, mask

二维码格式参数说明
orientation方向,可选值为N/R/I/B
model可选值为1和2,和QR码的标准有关,2会比1更好识别一点,默认是2
magnification放大系数,可选1-10,数字越大二维码就越大

二维码信息输入采用 ^FD 指令

二维码信息参数说明
errorCorrection纠错能力,ECC标准中规定了4档二维码纠错能力,分别为L(7%), M(15%), Q(25%) 和H(30%),纠错百分比越高,纠错能力越强
mask掩码,支持参数A或M,对应自动(默认)或者手动。如果选择M,则还需要再额外加一位控制输入,告诉系统需要编码的是什么东西,通常用于需要中文输入的情况

代码示例:

^XA
^FO50,300^BQN,2,3^FDLA,{"date": "2024.2.26"}^FS
^XZ

标签预览:
在这里插入图片描述

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

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

相关文章

Go 互斥锁的实现原理?

Go sync包提供了两种锁类型:互斥锁sync.Mutex 和 读写互斥锁sync.RWMutex,都属于悲观锁。 概念 Mutex是互斥锁,当一个 goroutine 获得了锁后,其他 goroutine 不能获取锁(只能存在一个写者或读者,不能同时…

STM32 IIC协议基础概念

文章目录 前言一、IIC协议介绍二、IIC硬件框图和程序层次三、IIC协议1.IIC协议通信流程2.IIC的引脚为什么需要加入上拉电阻3.IIC的引脚为什么需要配置为开漏输出 四、STM32 IIC硬件结构总结 前言 本篇文章将带大家学习IIC通信协议的一些基础概念和使用。 一、IIC协议介绍 I2…

jsjiami.v7关于js加密运行环境的探索

浏览器环境、Node.js 环境和 vm2 环境之间存在一些区别,包括全局对象、核心模块和一些环境特定的 API。下面是一些区别的简要概述,以及一些代码示例来突显它们之间的不同。 1. 浏览器环境: 全局对象: 浏览器环境: 全…

数据结构·栈和队列

1. 栈 1.1 栈的概念及结构 栈:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一段称为栈顶,另一端称为栈底。 栈中的数据元素遵守 后进先出 LIFO(Last In First Out)的原则,后进来的数…

YOLOv8 DeepSORT实现智能交通监控-改进yolo单目测距及速度测量-流量计数

YOLOv8 DeepSORT是一种基于目标检测和跟踪技术的智能交通监控系统。它基于YOLOv8,通过加入DeepSORT算法实现目标跟踪,同时还改进了YOLOv8的单目测距及速度测量技术和流量计数功能。 该系统可以通过摄像头或视频源实时捕获图像,并自动检测和跟…

web安全学习笔记【20】——信息打点(10)

信息打点-公众号服务&Github监控&供应链&网盘泄漏&证书图标邮箱资产 #知识点: 1、业务资产-应用类型分类 2、Web单域名获取-接口查询 3、Web子域名获取-解析枚举 4、Web架构资产-平台指纹识别 ------------------------------------ 1、开源-CMS指纹…

【刷题】 Leetcode 1022.从根到叶的二进制数之和

刷题 1022.从根到叶的二进制数之和题目描述:思路一(dfs深搜万能版)思路二 (栈迭代巧解版)总结 Thanks♪(・ω・)ノ谢谢阅读!!!下一篇文章见&#xff…

SpringBoot 自定义注解实现操作日志记录

文章目录 前言正文一、项目结构介绍二、核心类2.1 核心注解2.1.1 CLog 日志注解2.1.2 ProcessorBean 处理器bean 2.2 切面类2.3 自定义线程池2.4 工具类2.4.1 管理者工具类 2.5 测试2.5.1 订单创建处理器2.5.2 订单管理者2.5.3 订单控制器2.5.4 测试报文2.5.5 测试结果 附录1、…

【Java题】调整奇数位于偶数之前(超简单版)

题目: 调整数组顺序使得奇数位于偶数之前。调整之后,不关心大小顺序。 如数组:[1,2,3,4,5,6,7,8,9] 调整后可能是:[1, 9,3,7,5, 6, 4, 8, 2] 代码: import java.util.Arrays;public class Main {public static voi…

将python程序打包为exe格式

1. 安装pyinstaller winr打开命令窗口 输入: pip install pyinstaller输入命令后会自动安装pyinstaller 2. 打包 进入你的代码所在位置,输入cmd 在弹出的窗口中输入 pyinstaller --onefile your_script.pyyour_script.py修改为你需要打包的程序名字 …

验证C++中 cout 输出情况的小程序

//这个小程序验证了C中cout输出char数组、char*指针变量、string对象、int数组、double类型的情况&#xff0c;并做了简单说明。具体代码及注释 #include<iostream> using namespace std; #include<string> #include<fstream> #include <iomanip> int…

ElasticSearch架构介绍及原理解析

ElasticSearch架构介绍及原理解析文章目录 一、Elasticsearch是什么&#xff1f;1.简介2.历史与发展3.有关概念1.cluster2.shards3.replicas4.recovery5.river6.gateway7.discovery.zen8.Transport 4.安装 二、ElasticSearch架构介绍及原理解析1.基本架构1.1 进程节点1.2 负载均…

系统运维-Linux配置C、C++、Go语言编译环境

C yum install gcc -y #安装gcc编译器 gcc --version #验证环境gcc (GCC) 11.3.1 20221121 (Red Hat 11.3.1-4) Copyright (C) 2021 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even f…

简述操作系统内存管理

这篇可是真枯涩啊&#xff0c;哈哈&#xff0c;老早在学操作系统的时候整理的文章&#xff0c;没加润色&#xff0c;单纯从个人网站迁移过来。 操作系统内存管理的目的是将线性物理地址用抽象的逻辑地址空间&#xff0c;从而保护物理地址。此外&#xff0c;可以独立地址空间&am…

07-Linux部署Nginx

Linux部署Nginx 简介 NGINX是一款高性能的HTTP和反向代理服务器&#xff0c;也是一个IMAP/POP3/SMTP代理服务器。它的特点包括占用内存少、并发能力强&#xff0c;因此在处理高负载和高并发的场景时表现优秀。NGINX由俄罗斯的程序设计师Igor Sysoev开发&#xff0c;最初是为俄…

Windows Docker 部署 SQL Server

部署 SQL Server 打开 Docker Desktop&#xff0c;切换到 Linux 内核。然后在 PowerShell 执行下面命令&#xff0c;即可启动一个 SQL Server 服务&#xff0c;这里安装的是 2022 年版本 docker run -e "ACCEPT_EULAY" -e "MSSQL_SA_PASSWORDSQL123abcABC!&qu…

Spring 事务传播机制

事务传播机制&#xff1a;多个事务⽅法存在调⽤关系时, 事务是如何在这些⽅法间进⾏传播的。 ⽐如&#xff1a;有两个⽅法A&#xff0c;B都被 Transactional 修饰,&#xff0c;A⽅法调⽤B⽅法 A⽅法运⾏时, 会开启⼀个事务。当A调⽤B时&#xff0c; B⽅法本⾝也有事务&#xf…

【Elasticsearch专栏 14】深入探索:Elasticsearch使用Logstash的日期过滤器删除旧数据

导言 随着企业业务的不断增长和数字化转型的加速&#xff0c;日志和事件数据在Elasticsearch中迅速积累。这些数据中&#xff0c;有很大一部分是旧数据&#xff0c;它们可能不再需要或者不再相关。长时间保留这些数据不仅占用大量存储空间&#xff0c;还会降低Elasticsearch集…

c++ vector简介

1.vector定义&#xff1a; 改变数组大小的序列容器 2.如何创建vector&#xff1a; vector<数据类型> 容器名称&#xff08;容器大小&#xff0c;容器内每个位置的初始值&#xff09; vector num; vector num(5); vector num(5,2); vector num {1,2,3,4} ; //直接生成一个…

【uni-app】自定义组件和通信

&#xff08;1&#xff09;自定义组件概念 组件是 vue 技术中非常重要的部分&#xff0c;组件使得与ui相关的轮子可以方便的制造和共享&#xff0c;进而使得vue使用者的开发效率大幅提升&#xff0c;在项目的component目录下存放组件&#xff0c;uni-app 只支持 vue 单文件组件…