斑馬條碼打印機(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.cybermumu.com/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
閱讀本文的人還閱讀:
◆條碼打印機選型
◆上海條碼打印機-銷售與精品服務
◆條碼打印機原理是什么?解析條碼打印機工作原理
◆斑馬條碼打印機如何改善驅動打印緩慢的問題?機
|