斑马条码打印机(ZPL)可以通过^BC指令来进行code128条形码的打印。
一、斑马^BC指令的描述
code128是一种高密度、可变长、连续的字母数字符号。它的目的是编码复杂的产品标识。每个code128字符,包括六个要素:三个条和三个空。
● ^BC支持一个固定打印比率。
● 数据(^FD)受限于标签的宽度。
斑马^BC指令格式如下:
^BCo,h,f,g,e,m
这里:
① ^BC = Code128条形码
② o = 方向
默认值:当前^FW的设置
N = 正常
R = 顺时针旋转90度
I = 倒转180度
B = 镜像
③ h = 条形码高度
默认值:由^BY来设置
其他值:1dot 到 9999dots
④ f = 打印释义行
默认值:Y =Yes
其他值:N =No
⑤ g = 条码上打印释义行
默认值:N =No
其他值:Y =Yes
⑥ e = UCC校验位
默认值:N =No
其他值:Y =Yes
⑦ m = 模式,N、U、A、D可选
默认值:N =没有模式可选
其他值:U =UCC模式,(^FD或^SN语句必须包括19个数字,它也可以包含有效的字母),C字符集中的FNC1将被自动选择使用;在^FD或^SN语句中超出19位的多余位数将被滤掉,而低于19位数字的,将在右侧增加0补充至19位。
其他值:A =Automatic模式,Automatic模式分析发送来的数据,并自动确定最佳的分配方法;完整的ASCII字符集都可以用使用在^FD语句中,打印机将决定什么时候转变字符子集,四个或者更多的数字位将导致自动转换为C字符集。
其他值:D =新模式(F/W为x.11.x版本或以上),●将允许处理带应用程序标识符或不带应用程序标识符的UCC/EAN;●代码以FNC1开始标识一个UCC/EAN128条形码;●打印机将自动去掉括号和空格进行编码,但括号和空格在释义行可见;●打印机将自动判断,如果需要一个校验位,计算出来,并打印它;●自动调整释义行
二、code128条形码子集
code128码有三个字符的子集。在每个子集中都有106个编码打印字符,每个字符集最多可以有三个不同的含义,这取决于所使用的字符子集。三个code128字符子集分别被称为:●子集A;●子集B;●子集C
子集可以通过下述两种方法之一进行选择:
Ⅰ.在与该条形码关联的字符串数据(^FD)中,使用一个特殊的调用代码。
Ⅱ.将所需的启动代码放在的数据开始的位置。如果没有启动代码输入,子集B将被使用。
要改变一个条形码内的子集,在相应的数据串点上放置适当的调用代码,新的子集将保持有效,直到出现了其他的调用代码。 (例如,在子集C中,使用一个“>7”数据改变到A的子集),下表显示了code128三个子集的调用代码和开始字符代码。
① 子集A和子集C的规则
code128的子集A和子集C在数据字符串中需要通过双位数来进行编程,00-99。在子集A中,每个双位数来作为一个单字符编码到条形码中;子集C是直接被打印的。
② 子集B的规则
子集B是直接作为ASCII文本编程的,除了大于94的和一些特殊字符(^ > ~)外,而这些字符必须通过调用代码来进行编程。
③ code128字符集,详见http://www.chongshang.com.cn/code128_width.shtml
④ UCC/EAN-128符号体系
应用标识符数据UCC/EAN-128,是一种code128码的变体,专门保留为EAN和UCC使用,它的目的不是用于零售网点的数据扫描。
UCC/EAN-128有很多优势,它是当今最完整的字母数字一维条码,使用三种不同的字符集(A,B,C)有利于完整的对128个ASCII字符进行编码;code128条形码是最紧凑的线性条码;字符集C可以使双密度模式来代表的数字数据,在这种模式下,两个数字用一个符号字符代表以节省宝贵的空间。
UCC/EAN-128条码始终包含一个特殊的非数据字符被称为功能1(FNC1),它跟在条码的起始字符后。它使扫描器和处理软件能够自动识别UCC/EAN-128和其他条码符号,随后只处理相关数据。
UCC/EAN-128条码是由静止区、一个code128的起始字符A,B或C、1个FNC字符、数据(应用程序标识符加上数据字段)、校验字符、停止字符和一个尾随的静止区来组成。
UCC/EAN,UCC/128有几种方式来听取它所使用的代码。这取决于所使用的应用程序标识符代码。
下面是UCC应用标识符表:
数据内容 |
应用标识符(AI) |
另加下列数据结构 |
Serial Shipping Container Code (SSCC) |
00 |
整整18个数字 |
Shipping Container Code |
01 |
整整14个数字 |
Batch NumberS |
10 |
最大可到20个字母数字 |
Production Date (YYMMDD) |
11 |
整整6个数字 |
Packaging Date (YYMMDD) |
13 |
整整6个数字 |
Sell By Date (YYMMDD) |
15 |
整整6个数字 |
Expiration Date (YYMMDD) |
17 |
整整6个数字 |
Product Variant |
20 |
整整2个数字 |
Serial Number |
21 |
最大可到20个字母数字 |
HIBCC Quantity, Date, Batch and Link |
22 |
最大可到29个字母数字 |
Lot Number |
23* |
最大可到19个字母数字 |
Quantity Each |
30 |
|
Net Weight (Kilograms) |
310** |
整整6个数字 |
Length, Meters |
311** |
整整6个数字 |
Width or Diameter (Meters) |
312** |
整整6个数字 |
Depths ( Meters) |
313** |
整整6个数字 |
Area (Sq. Meters) |
314** |
整整6个数字 |
Volume (Liters) |
315** |
整整6个数字 |
Volume (Cubic Meters) |
316** |
整整6个数字 |
Net Weight (Pounds) |
320** |
整整6个数字 |
Customer PO Number |
400 |
最大可到29个字母数字 |
Ship To (Deliver To) Location Code
using EAN 13 or DUNS Number with leading zeros |
410 |
整整13个数字 |
Bill To (Invoice To) Location Code
using EAN 13 or DUNS Number with leading zeros |
411 |
整整13个数字 |
Purchase from |
412 |
整整13个数字 |
Ship To (Deliver To) Postal Code
within single postal authority |
420 |
最大可到9个字母数字 |
Ship To (Deliver To) Postal Code
with 3-digit ISO Country Code Prefix |
421 |
3个到9个字母数字 |
Roll Products - width, length,
core diameter, direction and splices |
8001 |
整整14个数字 |
Electronic Serial number for
cellular mobile phone |
8002 |
最大可到20个字母数字 |
注:对于仅仅需要表明年和月的,数据字段被设置为“00”
三、斑马^BC指令打印code128条形码示例
1、通过子集A来进行打印
指令代码如下:
^XA
^FO100,70^BY3^BCN,100,Y,N,N
^FD>93547363717181920^FS
^XZ
打印结果如下:
2、通过子集C来进行打印
指令代码如下:
^XA
^FO100,70^BY3^BCN,100,Y,N,N
^FD>;5633765412^FS
^XZ
打印结果如下:
3、具有子集C转换到子集B,然后再转换为子集A
指令代码如下:
^XA
^FO50,50^BY3^BCN,100,Y,N,N
^FD>;382436>6CODE128>752375152^FS
^XZ
打印结果如下:
“>;”为子集C的开始字符代码,“>6”表示转换为子集B,“>7”表示转换为子集A。
4、几种方法来编写代码,打印EAN/UCC-128条形码,应用标识符为'00'
4.1 m参数使用'N',应用标识符为00
代码如下:
^XA
^FO90,200^BY4^BCN,256,Y,N,Y,N^FD>;>80012345123451234512^FS
^XZ
打印效果如下:
■
>;>8,设置子集C 和功能1(FCN1)
■ 00后面有17个字符,校验位自动生成打印第20个字符(由e参数来决定)
■ 当m参数设置为N时,位数并不限制在19个字符
4.2 m参数使用'U',应用标识符为00
代码如下:
^XA
^FO90,200^BY4^BC,256,Y,N,,U^FD0012345123451234512^FS
^XZ
打印效果如下:
■ 当m参数选择U时,在^FD后面只能使用19个字符,不能多也不能少
■ 子集C和FNC1是被自动选择的
■ 校验位是被自动插入的
4.3 m参数使用'D',应用标识符为00
代码如下:
^XA
^FO50,200^BCN,150,Y,N,,D^FD(00) 1 2345123 4512345120^FS
^XZ
打印效果如下:
■ 这个0(数据结束时)是个假字符,作为一个占位字符,打印机将自动插入一个校验位,在这个列子中校验位刚好也是0
■ 子集C和FNC1是被自动选择的
■ 括号和空格,可以出现在数据中
■ 校验位是自动插入的。打印机将自动计算校验位,并把其写入到条形码的释义行。
■ 释义行也将显示括号和空格,但不会在实际的条码里。
4.4 使用不同的字体来打印释义行(F/W版本为x.10.x或者更新的版本)
代码如下:
^XA
^FO50,200^A0N,40,30^BCN,150,Y,N,Y^FD>;>80012345123451234512^FS
^XZ
打印效果如下:
■ ^A0N,40,30命令行可以改变释义行的字体和大小。
4.5 使用不同的字体来打印释义行(F/W版本为x.10.x以下版本)
代码如下:
^XA
^FO25,25^BCN,150,N,N,Y^FD>;>80012345123451234512^FS
^FO100,190^A0N,50,40^FD(00) 1 2345123 451234512 0^FS
^XZ
打印效果如下:
■ 需要编写一个单独的文本字段。
■ 条形码的释义行需要被关闭,参数f必须为N
■ ^A0N,50,40命令行可以改变释义行的字体和大小。
■ 你必须确保你在文本字段中输入正确的校验数字
■ 创建一个单独的文本域,用括号和空格来格式释义行。
5、具有多个应用标识符的EAN/UCC-128条形码打印 FNC1(>8)将被插入在两个AI之间
5.1 m参数使用A(自动)
^XA
^BY2,2.5,193^FO33,400^BCN,,N,N,N,A^FD>;>80104017773003486>8100008535>8910001>837252^FS
^FT33,625^AEN,0,0^FD(01)04017773003486(10)0008535(91)0001(37)252^FS
^XZ
5.2 m参数使用U
^XA
^BY3,2.5,193^FO33,200^BCN,,N,N,N,U^FD>;>80204017773003486>8100008535>8910001>837252^FS
^FT33,455^A0N,30,30^FD(02)04017773003486(10)0008535(91)0001(37)252^FS
^XZ
5.3 m参数使用D
^XA
^PON
^LH0,0
^BY2,2.5,145^FO218,343^BCB,,Y,N,N,D^FD(91)0005886>8(10)0000410549>8(99)05^FS
^XZ
阅读本文的人还阅读:
◆条码打印机选型
◆上海条码打印机-销售与精品服务
◆条码打印机原理是什么?解析条码打印机工作原理
◆斑马条码打印机如何改善驱动打印缓慢的问题?机
|