当前位置:文档之家› 斑马条码打印机控制指令说明

斑马条码打印机控制指令说明

ZPL2(Zebra 印表機語言)简易指令集.doc2008年07月30日星期三 17:01^XA:指令名?:起始指令指令左右: 當印表機接受到此命令時表示本段程式開始.^XZ:指令名稱: 終止指令指令作用: 當印表機接受到此指令時即表示本段程式終止并開始列印(注: 該兩指令需配對使用)^XA--------起始指令^FO22,30^BY2,2,38^BCN,,N,N,N^FD COO2 PN MFGID DELLDATE SN ^FS^FO40,71^A0,24,32^FD COO2 - PN - MFGID - DELLDATE - SN ^FS^FO45,98^BY2,2,38^BCN,,N,N,N^FD REV ^FS^FO43,140^A0,24,32^FDREV REV ^FS^FO240,125^A0,24,32^FDMade in COUNTRY ^FS^PQ PRNQTY^XZ--------終止指令^LH x,y指令名稱: 定義標簽起始位置指令指令作用: (x,y)表示的含義是坐標值,但實際X和Y的值是點的數目.坐標值以每毫米包涵點數多少計算,依機型不同而有差異,如203dpi的機型,每1mm代表8點.如300dpi的機型,每1mm代表12點.范例: ^LH30,30^FS如果你的機型是用203dpi則表示:在離卷紙邊3.75*3.75mm處為標簽起始點.3.75是30/8得來的.203dpi 8點/mm 300dpi 12點/mm^LL y指令名稱:定義標簽長度指令指令作用: 限定使用在連續標簽紙,y以每毫米(mm)包含點數多少計算,每一機型計算方式與前頁一樣.范例: ^LL300^FS表示您所列印的標簽紙的長度是 37.5mm (203dpi)表示您所列印的標簽紙的長度是 25mm (300dpi)^MD x指令名稱: 濃暗度設置指令指令作用: 經由溫度控制來設置列印的濃暗度,設置值可以正負各30個區段(x),正值溫度越高顏色越濃,反之越淡.本指令運行后,如果印表機電源關閉即回復到出廠設置值+10.在指令群中可以分段來控制濃淡,例如:你可以在程式前段先定義^MD6,然后在中段定義^MD-9,后段再定義^MD20,此時濃淡度會以10+6=16,16-9=7,7+20=27這三段程度印出,標簽就會呈現"濃淡濃"的現象,至于濃淡程度則可視列印出的效果來調整至滿意程度.~JC:指令名稱:檢測標簽紙指令指令作用:當您更換不同大小的紙張時,需重新檢測紙張大小,以便在換紙后列印內容能在正確的位置,功能與硬體面版設置CALIBRATE一樣,如果硬體上已有此項功能則可以在硬體上直接設置.^SC a,b,c,d,e指令名稱: 設置通訊參數指令指令作用: a : baud rate,可由110-19200b : word length, 7或8個data bitsc : parity,n=none 或 e= even 或o=oddd : stop bits,1或2e : handshake,X=XON/XOFF 或 D=DTR/DSR 例如:^SC9600,7,E,2,X 表示9600baud rate 7個date bits even parity 2個stop bit xon/xoff handshake^JUx指令名稱: 保存設置指令指令作用: x為參數,x=F 則恢復出廠預設值x=S 則保存當前設置值x=R 則返回上次設置值.所以,如果您在設置上作了更改且希望將此設置儲存起來,您可以使用^JUs指令.^FOx,y指令名稱: 定義相對於其實位置指令指令作用: (x,y)為坐標值.如:^FO20,30 表示ZEBAR這行字距標簽紙邊的位置為: (x)2.5mm*(y)1.25mm (203pdi打印機)^FD指令名稱: 定義列印內容指令指令作用: 定義列印內容例: ......code 39: ^B3A,bCK,nH,bBT,bAT如. ^B3,,20,,Ncode128: ^BC A,nH,bBT,bAT,bCK如. ^BCN,20,N,N,,Acode 93: ^BA A,nH,bBT,bAT,bCK如. ^BAN,72,N,N,NEAN-13 : ^BE A,nH,bBT,bAT如. ^BEN,34,Y,N畫框劃線: ^GB nW,nH,nLW如. ^GB200,100,2 or ^GB150,0,1特殊字元 ~: ^F vC^FD v^FS 如. ^FH^FD_7e^FS ASCII 7E='~'畫圖: ^XG vN,nXS,nYS^FS 如. ^XGR:SAMPLE.GRF,2,1^FS--各印表機型每毫米點數--152 DPI(1mm 6pt): 90A203 DPI(1mm 8 pt): S300,S500,105S,160S,140,140XI,Z4000300 DPI(1mm 12pt): 90XI,170XI(1mm 12pt)600 DPI(1mm 24pt): 96xiIII,BRADY600--顏色代表意義--藍色:ZPL指令; 粉紅色:數字; 紫色:文字資料--縮寫代表意義--nW : 寬度點數(Width)nH : 高度點數(Height)nR : 寬窄線條比例(Rate)nTBW: 窄線條點數(Thin Bar Width)nLW : 線寬點數(Line Width)nXS : 水平放大比例(X-axis Scale)nYS : 垂直放大比例(Y-axis Scale)v : 任何文字資料A : 旋轉角度(Angle): N:0,R:90,I:180,B:270bFZ : 是否前面補零(Fill Zero)bBT : 是否條碼底下印字(Below Text)bAT : 是否條碼上面印字(Above Text)bCK : 是否印檢查字元(Check)F : 可以是 0-9,A-Z; 字型 0:向量字型; 字型 D:常用字型vC :列印特殊字元時的跳脫字,內定為 _vN :在印表機中的檔名, 如. R:SAMPLE.GRFpublic class Printer {[System.Runtime.InteropServices.StructLayout( youtKind.Sequential)]private struct OVERLAPPED {int Internal;int InternalHigh;int Offset;int OffSetHigh;int hEvent;}[System.Runtime.InteropServices.DllImport("kernel32.dll")]private static extern int CreateFile(string lpFileName,uint dwDesiredAccess,int dwShareMode,int lpSecurityAttributes,int dwCreationDisposition,int dwFlagsAndAttributes,int hTemplateFile);[System.Runtime.InteropServices.DllImport("kernel32.dll")] private staticextern bool WriteFile( int hFile, byte[] lpBuffer, int nNumberOfBytesToWrite, out int lpNumberOfBytesWritten, out OVERLAPPED lpOverlapped );[System.Runtime.InteropServices.DllImport("kernel32.dll")] private staticextern bool CloseHandle( int hObject ); private int iHandle;public bool Open() { iHandle = CreateFile("LPT1:",(uint)FileAccess.ReadWrite, 0, 0, (int)FileMode.Open, 0, 0); if (iHandle !=-1) { return true; } else{ return false; } } public bool Write(stringMystring) { if (iHandle != -1) { int i; OVERLAPPED x; byte[] mybyte =System.Text.Encoding.Default.GetBytes(Mystring); returnWriteFile(iHandle, mybyte, mybyte.Length, out i, out x); } else { throw new Exception("端口未打开!"); } } publicbool Close() { return CloseHandle(iHandle); } }这个类封装了对并口的操作, 它的使用方法为:var printer = new Printer(); if (!printer.Open()) { GB.IO.SetError("未能连接打印机,请确认打印机是否安装正确并接通电源。

"); return; } printer.Write(cmd);if (!printer.Close()) { GB.IO.SetError("未能关闭与打印机之间的连接,这可能意味着严重的错误,请重启电脑及打印机。

"); return; }。

相关主题