如何使用斑马^BC指令打印各种code128条形码?

软件教程 admin 2016-04-07 15:57 4937 0

斑马条码打印机(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三个子集的调用代码和开始字符代码。

zebra_128-1.gif

① 子集A和子集C的规则
code128的子集A和子集C在数据字符串中需要通过双位数来进行编程,00-99。在子集A中,每个双位数来作为一个单字符编码到条形码中;子集C是直接被打印的。

② 子集B的规则
子集B是直接作为ASCII文本编程的,除了大于94的和一些特殊字符(^ > ~)外,而这些字符必须通过调用代码来进行编程。

③ code128字符集,

④ 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


评论区

搜索