ZPL 、EPL与TSPL指令区别

飞印盒子驱动标签打印机的时候具有各种模式,这里常见的ZPL和EPL、TSC等概念是什么呢?

这些都是标签语言的术语

条码打印机是一种专业的打印设备,其打印实现方式与普通的激光、喷墨或针式打印机有所不同。

世界各大条码打印设备厂商生产的打印机都采用了各自不同的打印语言以实现其打印,如Zebra系列的ZPL(斑马条码打印机工业型号),Eltron的EPL(斑马条码打印机桌面小机器),Datamax的DPL等。

与普通打印方式相比,采用打印语言的优点在于速度快,精度高,但由于没有统一的标准打印语言,使得用户在使用不同机器时会产生一定的麻烦,好在各种打印语言的语法比较类似,上手也是比较简单的。

它们的工作原理其实很简单:利用这些编程语言,编辑好一个打印的指令集,发送给条码打印机,条码打印机就会按照你事先编辑的命令去进行打印的工作。

不同品牌的打印机,打印指令是不一样的,所以你用了ZPL来编程出来的指令,不能用在其他品牌的打印机上,包括EPL语言的机器上了。

ZPL标签开发实例

一个最基本的标签示例:

^XA   ‘标签格式开始命令^LH30,30   ‘Label Home position设置标签起始参考点坐标为30,30,默认为0,0^FO20,10^AD^FDEXAMPLE^FS  ‘ ^FO20,10-设置数据域起始坐标,距参考点20,10                            ^AD-设定字体为D(内部字体)                            ^FD-数据域开始命令                            EXAMPLE实际打印内容                                ^FS-数据域分隔命令^FO20,60^B3^FDAAA001^FS  ‘^B3-选择条码类型为39码^XZ   ‘标签格式结束命令

打印示例如下:

下表中,对ZPLII一些常用命令做出解释

命令 含义解释
_____________ _____________________________________________
^XA 标签格式开始命令,请注意,每张标签打印都需以此命令开头
_____________ _____________________________________________
^LHx,y 设置标签起始参考点坐标,不使用此命令时默认为0,0
x:x轴坐标(0-9999),y:y轴坐标(0-9999)
注:计量单位为点(dot)
200dpi机器,8点=1mm
300dpi机器,12点=1mm
_____________ _____________________________________________
^LTx “标签内容上下(Y轴)位置整体移动
x:移动的数值,范围:-120 - +120点”
_____________ _____________________________________________
^LSa 标签内容左右(X轴)位置整体移动
a:移动的数值,范围:-9999 - +9999点
_____________ _____________________________________________
^FOx,y 设置数据域(包括文字、条码、图形等)
起始坐标(左上角)
_____________ _____________________________________________
^FDa 定义打印数据字符,a:打印内容
_____________ _____________________________________________
^FS 数据域分隔命令
_____________ _____________________________________________
^Af,o,h,w 打印文字格式定义
f:字体,默认为0,选择范围:A-Z,0-9
(均为打印机内部字体,非TrueType字体)
o:文字方向,N=普通,R=旋转90度,I=旋转180度,
B=旋转270度
h:字符高度,范围:10-1500点
w:字符宽度,范围:10-1500点”
_____________ _____________________________________________
^BYw,r,h 设定条码默认参数
w:条宽,缺省为2点,选择范围:1-10点
r:条空比率,缺省为3.0,选择范围:2.0-3.0
h:条码高度
_____________ _____________________________________________
^B3o,e,h,f,g 打印39码
o:条码方向
e:Mod-43校验位,N=No(默认),Y=Yes
h:条码高度,范围:1-9999点
f:是否打印字符行,Y=Yes(默认),N=No
g:字符行位置,N:条码下方,Y:条码上方
_____________ _____________________________________________
^BCo,h,f,g,e,m 打印128码
e:UCC校验位,N=No(默认),Y=Yes
m:模式,一般设为A(自动选择)或忽略不计
_____________ _____________________________________________
^PRp 打印速率
p:速度——2-8(或A-E)=2英寸/秒-8英寸/秒”
_____________ _____________________________________________
^PQq 打印数量
q:总数量,选择范围:1-99999999
_____________ _____________________________________________
^GBw,h,t 打印方框
w:方框宽度,h:方框宽度,t:线宽
_____________ _____________________________________________

TSPL语言开发实例

以下代码内容为一个最简单标签的必备要素,以此为例,详解设计标签时必备的内容和要点。

一个基本的标签实例

SIZE 60 mm,40 mmGAP 2 mmCLSTEXT 50,50,"4",0,1,1,"DEMO FOR TEXT"PRINT 1

一张标签通常包含三个部分,即系统设定、打印内容设定和执行打印指令。

  • 系统设定包括标签尺寸(SIZE、GAP)和清除缓冲区数据指令(CLS)等。

  • 打印内容设定可以参考本文档卷标内容设计指令内容,本例中系打印文本。

  • 执行打印指令用于打印出设计好的标签,在此指令发送后打印机才执行打印动作。

需要特别注意,在每一条指令结尾需要加入换行符,即字符串“\r\n”或 16 进制 0x0D 0x0A

语法说明

以下为打印标签时的常用控制指令(在飞印盒子测试页中默认会带有一段这种语法的控制指令):

SIZE

该指令用于设定卷标纸的宽度和长度。使用公制单位,现在我们的标签大小为60mm*40mm。注 :200DPI:1mm = 8dots使用公制单位,在单位与数字之间必须添加一个空。指令示例:SIZE 60 mm,40 mm

GAP

该指令用于定义两张卷标纸间的垂直间距距离。可以设置2mm或者不设置指令示例:GAP 2 mm

CLS

该指令用于清除图像缓冲区(image buffer)的数据。注:此项指令必须置于SIZE指令之后。指令示例:CLS

PRINT

该指令用于打印出存储于影像缓冲区内的数据可设置打印多张,需放在全部指令最后的位置。指令示例,打印一张:PRINT 1

TEXT

该指令用于打印字符串。

指令语法:

TEXT x,y,"font",rotation,x-multiplication,y-multiplication,"content"

以下是详细参数说明:

参数 说明
_____________ _____________________________________________
x 文字 X 方向起始点坐标
y 文字 Y 方向起始点坐标
_____________ _____________________________________________
font 字体名称
1 8×12 dot 英数字体
2 12×20 dot 英数字体
3 16×24 dot 英数字体
4 24×32 dot 英数字体
5 32×48 dot 英数字体
6 14×19 dot 英数字体 OCR-B
7 21×27 dot 英数字体 OCR-B
8 14×25 dot 英数字体 OCR-A
9 9×17 dot 英数字体
10 12×24 dot 英数字体
TST24.BF2 繁体中文 24×24Font(大五码)
TSS24.BF2 简体中文 24×24Font(GB 码)
K 韩文 24×24Font(KS 码)
_____________ _____________________________________________
rotation 文字旋转角度(顺时针方向)
0 0 度
90 90 度
180 180 度
270 270 度
_____________ _____________________________________________
x-multiplication X 方向放大倍率 1-10
y-multiplication Y 方向放大倍率 1-10
_____________ _____________________________________________

注意:五号字英文字母仅可打印大写字母

若要打印双引号时(“)在程序中请使用 [”] 来打印双引号

若要打印0D(hex)字符时,请在程序中使用[R]来打印CR

若要打印0A(hex)字符时,请在程序中使用[A]来打印LF

使用说明:

一倍倍率下,60mm宽的标签,可以打印19个全角中文字符或者39个半角字母数字,中文字体高度为24dtos。

TSPL打印时没有居中指令,需要手动设置

打印不会自动换行,超出宽度的文字将无法正常打印,所以多行文本,需要用到多个TEXT指令,每一打印文本的起始打印位置都需要手动设置,单位为dtos,即点阵数。60mm*40mm的点阵比为480*320。

常见的文字打印指令示例:
TEXT 0,10,"TSS24.BF2",0,1,1,"一二三四五六七八九十二二三四五六七八九十"TEXT 0,30,"TSS24.BF2",0,1,1,"12345678902234567890323456789042345678905234567890"
BAR

该指令用于在标签上画线。

指令语法:

BAR x,y,width,height

以下是详细参数说明:

参数 说明
_____________ _____________________________________________
x 线条左上角 X 坐标,单位 dot
y 线条左上角 Y 坐标,单位 dot
_____________ _____________________________________________
width 线宽,单位 dot
height 线高,单位 dot
_____________ _____________________________________________

指令示例:

BAR 100,100,300,200
BARCODE

该指令用来画一维条码

指令语法:

BARCODE x,y,"code type",height,human readable,rotation,narrow,wide,"content"

以下是详细参数说明:

参数 说明
_____________ _____________________________________________
x 左上角水平坐标起点,以点(dot)表示
y 左上角垂直坐标起点,以点(dot)表示
_____________ _____________________________________________
code type 建议使用39或128
_____________ _____________________________________________
height 条形码高度,以点(dot)表示
Human readable 0 表示人眼不可识,1 表示人眼可识,即在条码下显示内容
_____________ _____________________________________________
rotation 条形码旋转角度,顺时针方向
0 不旋转
90 顺时针方向旋转 90 度
180 顺时针方向旋转 180 度
270 顺时针方向旋转 270 度
_____________ _____________________________________________
narrow 窄 bar 宽度,以点(dot)表示
wide 宽 bar 宽度,以点(dot)表示
_____________ _____________________________________________
content 一维码内容
_____________ _____________________________________________

注:条码肉眼可见时,需要预留条码内容的显示位置,内容高度24dot

指令示例:

BARCODE 100,100,"128",50,0,0,2,4,"4600408762105840"
QRCODE

该指令用来打印二维码

程序语法:

QRCODE x,y,ECC level,cellwidth,mode,rotation,"data string"

参数 说明
_____________ _____________________________________________
二维码水平方向起始点坐标
二维码垂直方向起始点坐标
_____________ _____________________________________________
ECC level 选择 QRCODE 纠错等级
L 7%
M 15%
Q 25%
H 30%
_____________ _____________________________________________
cell width 二维码宽度 1-10
mode 手动/自动编码
A Auto
M Manual
_____________ _____________________________________________
rotation 旋转角度(顺时针方向)
0 0 度
90 90 度
180 180 度
270 270 度
data string 编码的字符串
_____________ _____________________________________________

指令示例:

QRCODE 50,50,M,6,A,0,"www.feyin.cn"

结束语:ZPL与TSPL这两种典型的标签开发语言的对比通过这篇文章可以略知一二,尽管用的关键词不同,但是基本功能是接近的,另外有一些较不常用的打印及控制命令未做说明,用户也最好不要轻易使用,以免造成机器软硬件设置的混乱。

(0)

相关推荐

  • 条码标签软件中如何生成 ITF14条码

    ITF-14条码是固定的14位数据,在使用Label mx条码标签打印软件制作IFT14时,它本身含有自校验功能,如果输入13位数据,软件会自动生成最后一位校验码数据.如果有完整的14位数据直接输入就 ...

  • 条码软件应用--普通打印机如何打印条码标签?

    能打印条码标签的打印机大体分为两种:标签打印机和普通打印机.如果要求标签纸卷状的,需要配套标签打印机.但如果标签是打印在A4或者其他平铺的纸张上,办公室常用的的激光打印机.喷墨打印机也完全可以用来打标 ...

  • 编程通用基础知识:常用批处理指令/DOS命令介绍

    在编程员的世界里,无论你是用哪一种语言进行编程,基本上都会涉及到批处理指令和DOS命令,本文将介绍一些最经常用到的批处理指令和DOS命令,即:`echo`.`@`.`::`.'rem'.'`pause ...

  • 条码软件如何制作电网条码标签

    国家电网标签上的条码是22位数据的Code 128 C条码,其中最后一位是校验码.Code128C类型本身不带校验码的,这就需要用校验算法把校验码算出来,其中利用的校验算法是MOD 10. 数据的生成 ...

  • 条码标签边扫描边打印如何制作?

    条码一边扫描一边打印的需求常用在:产品出入库,时即时扫描打印不容易出错.实现原理是将现有条码的数据扫描到条码软件里,然后在软件里生成相应的条码.这需要条码软件有相应的功能来配合实现.在Label mx ...

  • 儒、释、道三家文化的七大区别

    闲云谷 峰下闲云云上松,珍兰奇蕙伴节丛:不忍移爱进瓦罐,卷书抱坛迁谷中. 994篇原创内容 公众号 一.文化主旨 儒家文化--积极进取的文化 儒家倡导知识的获取和品德的培养,是一种积极向上的文化. 道 ...

  • 招摇撞骗罪和诈骗罪有什么区别

    招摇撞骗罪和诈骗罪都表现为欺骗行为,招摇撞骗罪也可以像诈骗罪一样骗取财物,两者容易混淆,大家知道招摇撞骗罪和诈骗罪有什么区别吗? 律师解答: 招摇撞骗罪侵犯的客体主要是国家机关的威信及其正常活动,而诈 ...

  • 香港服务器托管和租用有什么区别?

    香港服务器托管和租用有什么区别?托管和租用都是服务器选择使用方式,想要知道香港服务器托管和租用两种方式有什么区别以及哪种方式比较好,就需要深入了解它们,下面我们就聊聊香港服务器托管和租用的区别. 什么 ...

  • “全款”和“贷款”买房有什么区别?内行:10年后,差距一目了然

    因为现在国内的房价总体上呈现出不断上涨的趋势,尤其是在一二线城市靠近市中心的房子更是高到令现在的不少家庭都有着很大的生活重担,对于现在的年轻人来说也很难能够在他们的承受范围之内. 所以,如果高房价持续 ...

  • “普通人vs 女网红的区别...” 哈哈哈哈哈哈哈哈哈过于真实!

    网上冲浪久了 不得不感叹 现在的女网红真的很努力 为了拍出 前凸后翘的照片 不管何时何地 都执着地凹着浮夸的摆拍造型 网友甚至总结出了当网红的精髓 普通人vs 女网红的区别 学废了 离网红就差一个骨盆 ...

  • 木耳秋耳只差一个字,区别大不同!牢记2点,轻松分辨,不被忽悠

    买木耳有技巧,遇见这4种,不管多少钱也不要买,难吃又费钱 各位读者朋友们大家好,感谢阅读我分享的美食文章,经验和大家一起共享,今天我要和大家分享的内容是:『木耳秋耳只差一个字,区别大不同!牢记2点,轻 ...

  • 药品甲类和乙类的区别

    对于药品,我们都很熟悉.不管怎么样,都有用过各类药物.其实,药品的种类多种多样.世界上有多少种疾病,相对应就会有多少种药物.有句话不是说对症下药,说的就是药物和疾病的关系.由于对人的重要性,因此由不得 ...

  • 山葵中国什么地方有种?山葵和芥末的区别

    芥末有多种,一种是绿色芥末在日本很是常见名为山葵,而中国多以淡黄色芥末多见主要是辣根做的.那么,山葵中国什么地方有种?山葵和芥末的区别是什么? 山葵中国什么地方有种 山葵:中文学名山萮菜,拉丁学名Eu ...