Zebra条码打印机编程命令
Zebra105SL斑马条码打印机用户使用手册

Zebra105SL斑马条码打印机用户使用手册LED显示所采取的动作PRINT READY正确的操作设置菜单参数DARKNESS调整打印深度:按下INCREASE ( )或者DECREASE (-)按钮来增加深度默认值: 10 范围:0--- 30打印深度设置时考虑的相关因素较多,包括碳带类型,纸张材质,和打印头状态,您可以调节这个深度来达到最好的状态。
注意:深度尽量不要调的太高。
否则会烧断碳带。
深度调节也可以通过打印机驱动,或者软件设置。
TEAR OFF调整Tear Off的位置:按下INCREASE(+)或者DECREASE (-)按钮来增加其值。
每按一次会增加或者减少四个点的距离。
默认值:+0范围:-120――+120这个参数调节的主要是打印出来之后的标签离打印头的位置,以方便标签撕下或者切刀切下PRINT MODE选取打印机模式:按下INCREASE(+)或者DECREASE(-)按钮来选取其它的值。
默认值:Tear-Off选择值:Tear-Off,cutter,peel-off,liner take-up,rewin在选择打印模式之前请确定您的打印机已经安了模式所需要的硬件设备MEDIA TYPE选取介质模式:按下INCREASE(+)或者DECREASE(-)按钮来选取其它的值。
默认值:连续纸选择值:连续纸,非连续纸这个参数告诉打印机。
你现在所使用的是什么纸张介质。
请确认你所选的码数和你的纸张介质是一样的。
否则会出现一些较奇怪的现象。
SENSOR TYPE选择传感器(Sensor)的类型:按下INCREASE(+)或者DECREASE(-)按钮来选取其它的值。
默认值:Web选择值:Web,Mark这个菜单告诉机器,你用的纸张是那一种gap/mark,请选择合适的参数。
Mark时,纸背后必须有黑线,否则请不要改动此处参数SENSOR SELECT设置选取的传感器sensor方式:按下INCREASE(+)或者DECREASE(-)按钮来选取其它的值。
Delphi调用Zebra打印机的ZPL指令来打印条形码

pDocName := PChar('test doc'); {在打印列表中显示的打印内容} pOutputFile := nil; pDataType := 'RAW'; 才能识别 ZPL 语言} end; StartDocPrinter(Handle, 1, @DocInfo1); StartPagePrinter(Handle); WritePrinter(Handle, PChar(S), Length(S), N); EndPagePrinter(Handle); EndDocPrinter(Handle); ClosePrinter(Handle); end; {关键,数据类型必须是 RAW,这样打印机通过驱动程序
以上是我常用的方式,主要是现在客户使用 USB 的越来越多,所以这种方法简单快捷,楼主 可以参考一的话有两种方法,一是在 CMD 窗口下执行以下命令 NET USE LPT1 \\计算机名\共享斑马打印机名称 PERSISTENT:YES 将 USB 虚拟成 LPT1,这样用以上程序也可以使用 三、要使用斑马打印机 WINDOWS 驱动来实现
uses winspool .... procedure WriteRawStringToPrinter(PrinterName:String; S:String); var Handle: THandle; N: DWORD; DocInfo1: TDocInfo1; begin if not OpenPrinter(PChar(PrinterName), Handle, nil) then begin ShowMessage('error ' + IntToStr(GetLastError)); Exit; end; with DocInfo1 do begin
斑马条码打印机设置手册

斑马条码打印机设置手册
-Write by Neol 2008-2-18 1、适用对象
本手册仅适用于品牌为斑马的条码打印机,具体型号:Zebra S4M;Zebra Z4M
2、设置方法
A、设置字体打印的黑度
按下“MENU”按钮——》使用“左箭头”按钮或者“右箭头”按钮选择参数:Darkness ——》使用“上箭头”按钮或者“下箭头”按钮选择字体打印的黑度(数值越大打印的字体越黑)——》按下“MENU”按钮,打印机会提示是否保存设置,再按下“ENTER”按钮,确认保存退出(如果不保存,则使用“上箭头”选择NO,再按“ENTER”按钮)
B、设置价签打印完成后价签停留在撕纸处的位置
按下“MENU”按钮——》使用“左箭头”按钮或者“右箭头”按钮选择参数:Tear off——》使用“上箭头”按钮或者“下箭头”按钮选择价签停留的位置(注意:调节此参数数值的同时,价签会同步的前伸或者后退,当发现价签停留的位置合适时,就不要再调节参数值了)——》按下“MENU”按钮,再按下“ENTER”按钮,确认保存退出
C、设置价签定位方式:黑标定位
按下“MENU”按钮——》使用“左箭头”按钮或者“右箭头”按钮选择参数:Media Type——》使用“上箭头”按钮或者“下箭头”按钮选择参数:MARK——》按下“MENU”按钮,再按下“ENTER”按钮,确认保存退出
D、设置打印宽度
按下“MENU”按钮——》使用“左箭头”按钮或者“右箭头”按钮选择参数:PRINTE WIDTH——》使用“上箭头”按钮或者“下箭头”按钮调节参数数值为:832——》按下“MENU”按钮,再按下“ENTER”按钮,确认保存退出。
Zebra ZT410 Zebra ZT420条码打印机怎样重新打印上次打印过的标签

上海码索信息科技有限公司
Zebra ZT410 / Zebra ZT420条码打印机具有重新打印功能(对应的RFID打印机除外)
当ZT410 / ZT420打印机报错时,我们经常希望重新打印报错前的一张标签(前面的标签可能存在不完整等原因),这时,我们首先要把ZT410 / ZT420打印机中的“重新打印模式”开启,常用方法:
1、在打印机面板上进行调整
在待机显示下,按LEFT SELECT(左侧选择)进入打印机主菜单,选择“设置”菜单图标,进入后,选择“重新打印模式”,选择“开启”,并确定保存,退出菜单。
2、通过ZPL指令,发送下面一段指令到打印机
^XA
^JZ
^XZ
启用了重新打印模式后,就可以通过打印机控制面板上的“下箭头键”(DOWN ARROW),重新打印上次打印过的标签
-----码索信息为您整理。
斑马打印机全部屏幕设置秘籍大全

斑马打印机设置大全首先必须要理解的屏幕英文FEED--走纸PAUSE--暂停CANCEL--取消SELECT--选择SETUP/EXIT--设置/退出PREVIOUS--上一个NEXT/SA VE--下一个十或—是加一个或减一个最重要的设置打印深度和机器初始化:. 打印机屏幕显示PRINTER READY (打印就绪)说明打印机处于正常状态可以打印,设置要手动按屏幕1 进入打印机设置按SETUP/EXIT--设置/退出,屏幕上显示DARKNESS (打印深度),可以按上一个或下一个。
如想调动里面的设置按十或—(加一个或减一个)即可然后按一下SETUP/EXIT--设置/退出再按NEXT/SA VE--下一个操作完成。
如:想调动打印机的打印深度。
首先按键SETUP/EXIT设置,屏幕上显示DARKNESS打印深度,然后按十或—即可调动温度的高低选好之后按SETUP/EXIT--设置/退出再按NEXT/SA VE--下一个已经选好了。
屏幕里面的设置每一个都是如上进行。
尽量用最小的参数达到最佳的打印效果,如果该参数过高,可能烧穿2.保存设置与初始化当你把其他的设置都设好之后,想保存的时候,在按一下SETUP/EXIT设置,屏幕上会显示SA VE CHANGES(保存更改),然后可以按十或—即可选择其他选项。
PERMANENT ——永久保存设置。
TEMPORARY——新设置的值在此时好用,会在关机后消失。
CANCEL——放弃刚才所修改的参数值LOAD DEFAULTS——选取出厂时的默认值LOAD LASTSA VE——选取上一次永久保存的设置。
选择好其中的选项按NEXT/SA VE--下一个操作完成。
机器如果有问题,可以重启机器开关完成,如果机器走纸不准确,可以通过多次初始化设置让机器走纸正确。
其他的屏幕设置一、1、设置模式按SETUP/EXIT键可以进入设置模式。
按NEXT/SAVE或PREVIOUS 键可以达到你需要的参数2、改变口令保护的参数注意:有些参数有口令保护,工厂默认的口令是:12343、离开设置模式在任何时候可以通过按SETUP/EXIT键离开设置模式。
条码打印三-Zebra最全ZPL语言指令解析

条码打印三-Zebra最全ZPL语⾔指令解析^LS : 标签的位移^A 缩放/点阵字体^A( 可缩放/点阵字体)命令⽤于内置的True Type 字体。
可缩放字体(也可以认为是平滑⽮量字体)能够以点为单位来对横向、纵向进⾏扩展。
点阵字体由点阵象素组成,通常⾼度⾼度⼤于宽度。
内置的的缩放字体(A0=CG Triumvirate Bold Condensed) 默认为不旋转, 15 点⾼, 12点宽。
打印机将从^A 命令得到字体的旋转⽅向、宽度、⾼度等参数。
^A 命令的格式:^Af,o,h,w^A = 缩放/ 点阵字体f = 字体名默认值: 0(CG Triumvirate Bold Condensed)其他值: A-Z,0-9 (打印机的任何字体,包括下载字体, EPROM中储存的,当然这些字体必须⽤^CW来定义为A-Z,0-9 )0 = 字体⽅向默认值: ^FW默认值或上⼀个^FW的值。
其他值:N = 正常(Normal)R = 顺时针旋转90 度(Roated)I = 顺时针旋转180 度( Inverted)B = 顺时针旋转270 度 (Bottom)h = 字符⾼度曲线字体:默认值: 15 点或上⼀次^CF的值。
可接受的值:10-1500 点点阵字体:默认值:指定点阵字体的标准⾼度其他值:标准⾼度⾼度的整数倍, 2-10。
w = 字符宽度曲线字体:默认值:12 点或上⼀次^CV的值,也可以显⽰为0可接受的值:10-1500 点点阵字体:默认值:指定点阵字体的标准宽度其他标准⾼度⾼度的整数倍, 2-10。
值:^A@ 使⽤字体名来调⽤字体^A@ (使⽤字体名来调⽤字体)命令使⽤字体的全名,来调⽤字体⽰例:^XAA@N,25,25,B:CYRILLIC.FNT^FO100,20^FS^FDThis is a test.^FS^A@N,50,50^FO200,40^FS⼀旦 ^A@定义了 “Cyrillic.FNT ,”它的作⽤将⼀直保持到下⼀个 ^A@命令定义⼀个新字体名时。
Zebra斑马条码打印机驱动安装及ZebraDesigner操作指导

Zebra(斑马)条码打印机驱动安装及ZebraDesigner操作指导一、安装驱动程序将斑马打印机与电脑连接,打开电源;然后把斑马打印机自带的关盘放入电脑光驱中,双击自动运行.如果电脑没有自动运行而是打开了光盘,那么在光盘中找到””的文件双击运行此文件.在这个页面中选择打印机型号,点击”运行Zerbra Setup Utilities”前面的黄色剪头,弹出窗口点击按钮”Install New Printer”,弹出安装打印机驱动窗口,点击”下一步”,弹出窗口点击”安装打印机”按钮,弹出窗口选择所购买的打印机型号,点击”下一步”按钮,弹出窗口选择打印机可用端口,一般情况下,建议使用USB数据方式连接打印机和电脑,端口选择完成后点击”下一步”按钮,将”开始安装Zebra Font Downloader Setup Wizard(L)”前的勾选去掉,点击”完成”按钮;二、安装ZebraDesigner软件回到如下页面按照图片所示点击红圈位置选择”简体中文”点击”确定”按钮按照图片所示点击操作点击下一步如有需要,在红圈处更改软件安装路径,一直点击下一步,直至安装完成;三、使用ZebraDesigner软件进行标签模板的编辑选择创建新标签,点击完成按钮选择打印机驱动,点击下一步按钮将自动调整大小前面勾选去掉,填写正确的纸张大小,注意单位是毫米,填写完成后,点击下一步注意下一步到此页面,标签宽度和标签高度是不是和实际纸张大小一致,如果不一致修改,最后点击完成按钮四、添加/编辑条码:点击主界面左侧条码按钮,再在标签模板空白处左键单击,弹出页面之后,在固定条码数据中填入需要的数据内容,在条码类型中选择需要的条码类型,默认条码类型为CODE128,点击完成按钮如果需要对已经产生的条码进行更改,双击条码即可弹出条码向导页面五、添加/编辑文本:点击主界面左侧文本按钮, 再在标签模板空白处左键单击,弹出页面后,在固定文本中填入需要输入的文本内容,点击选择按钮选择需要的文本字体,建议使用黑体作为打印字体,更加清晰容易识别,点击完成按钮六、打印点击主界面上方的打印按钮,弹出窗口在数量中更改需要打印的数量,单击打印完成打印操作。
斑马条码打印机控制指令说明

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個stopbit 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: ^BCA,nH,bBT,bAT,bCK 如. ^BCN,20,N,N,,Acode 93: ^BAA,nH,bBT,bAT,bCK 如. ^BAN,72,N,N,NEAN-13 : ^BEA,nH,bBT,bAT 如. ^BEN,34,Y,N畫框劃線: ^GBnW,nH,nLW 如. ^GB200,100,2 or ^GB150,0,1特殊字元 ~: ^FvC^FDv^FS 如. ^FH^FD_7e^FS ASCII 7E='~'畫圖: ^XGvN,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("未能连接打印机,请确认打印机是否安装正确并接通电源。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Zebra条码打印机编程命令条码打印机是一种专业的打印设备,其打印实现方式与普通的激光、喷墨或针式打印机有所不同,世界各大条码打印设备厂商生产的打印机都采用了各自不同的打印语言以实现其打印,如Zebra系列的ZPL,Eltron的EPL,Datamax的DPL等,与普通打印方式相比,采用打印语言的优点在于速度快,精度高,但由于没有统一的标准打印语言,使得用户在使用不同机器时会产生一定的麻烦,好在各种打印语言的语法比较类似,上手也是比较简单的。
目前的条码打印主要采用专业的商用条码打印软件,使用方便、简单,功能强大,且提供了对各类型条码打印设备的接口,适用于需经常变换打印格式、内容的用户,如专业印刷厂商等,但此类软件的价格也较昂贵。
对于一些采用了企业管理系统的用户,其打印标签的格式通常已较固定,因此可在软件系统中嵌入条码打印部分。
一般来说,可采用以下几种方式:直接使用条码打印机的条码语言编写程序;采用各种专业控件提供商编制的条码控件;使用一些高级条码打印软件,如CodeSoft、LabelView提供的ActiveX技术等。
这几种方式在方便性、精确性及经济性等方面各有其优缺点,用户可根据需要自行选择,这里,主要对第一种方式给出较为详细的使用方法。
ZPLII是Zebra系列打印机的打印语言,在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,0x:x轴坐标(0-9999),y:y轴坐标(0-9999)注:计量单位为点(dot)200dpi机器,8点=1mm300dpi机器,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.0h:条码高度^B3o,e,h,f,g 打印39码o:条码方向e:Mod-43校验位,N=No(默认),Y=Yesh:条码高度,范围:1-9999点f:是否打印字符行,Y=Yes(默认),N=Nog:字符行位置,N:条码下方,Y:条码上方^BCo,h,f,g,e,m 打印128码e:UCC校验位,N=No(默认),Y=Yesm:模式,一般设为A(自动选择)或忽略不计^PRp 打印速率p:速度——2-8(或A-E)=2英寸/秒-8英寸/秒^PQq 打印数量q:总数量,选择范围:1-99999999^GBw,h,t 打印方框w:方框宽度,h:方框宽度,t:线宽~DGd:o.x,t,w,DATA 下载图形t:图形大小,计算方法为:x ×(点/毫米)×(y×(点/毫米)8x:图形宽度(毫米),y:图形高度(毫米)w:每行字节数,计算方法为x ×(点/毫米)8DATA:图形的ASCII16进制字符^XGd:o.x,x,y 调用图形进行打印d:存储图形的设备(Ram/FlashRam等)o.x:图形文件名,默认扩展名为GRFx:x轴缩放系数y:y轴缩放系数^IDd:o.x 删除图形注:以上命令中如果不填写某些参数,则会使用默认参数,速度控制,位置调整等控制命令需置于标签内容设置命令之前,也可忽略这些控制命令,直接在打印机上调节。
以上是一些ZPLII的主要打印用命令,一些较不常用的打印及控制命令未做说明,用户也最好不要轻易使用,以免造成机器软硬件设置的混乱。
使用ZPLII编写好一个标签格式文件后,可使用DOS命令COPY将其发送至打印机端口进行打印,在编写系统软件时当然也可以采用这种方法,但其效率很低。
下面以VB为例,介绍如何在VB中使用ZPLII打印标签。
Private Sub CmdPrint_Click()Open "LPT1" For Output As #1Print #1, "^XA"Print #1, "^LH30,30"Print #1, "^FO20,10^AD^FDEXAMPLE^FS "Print #1, "^FO20,60^B3^FDAAA001^FS "Print #1, "^PQ1,0,0,Y"Print #1, "^XZ"Close #1End Sub上述方法是将ZPLII命令直接发往LPT1并行打印端口。
在编程中,中文字符的打印应用较多,而如果在程序中直接写入中文字符,打印出的结果会是乱码,针对这种情况,我们可以采用一个动态链接库,使用其中的函数将采用了各种TrueType字体的中文(包括任何语种的文字)转换成16进制码,使得打印机以图形打印方式打印出文字。
具体实现方式如下,同样以VB为例。
Private Declare Function GETFONTHEX Lib "fnthex32.dll" (ByVal chnstr$, ByVal fontname$, ByVal chnname$, ByVal orient%, ByVal height%, ByVal width%, ByVal bold%, ByVal italic%, ByVal hexbuf$) As IntegerPrivate Sub Command1_Click()Dim nCount As IntegerDim cBuf As String * 21000nCount = GETFONTHEX("中文字符打印测试", "宋体", "chnstr01", 0, 30, 0, 1, 0, cBuf)Open "LPT1" For Output As #1Print #1, Mid(cBuf, 1, nCount)Print #1, "^XA"Print #1, "^PRB^FS"Print #1, "^BY3,3.0^FS"Print #1, "^FT30,190^BEN,70,Y,N^FD123456789012^FS"Print #1, "^FO30,15^XGchnstr01,1,1^FS"Print #1, "^PQ1,0,0,Y"Print #1, "^XZ"Print #1, "^XA"Print #1, "^IDchnstr01^FS"Print #1, "^XZ"Close #1End SubVC示例Void functionwriteZebra(){FILE * fhandle;fhandle=fopen("zebra.txt","w+");fputs("^XA\r",fhandle);fputs("^LH30,30\r",fhandle);fputs("^FO20,10^AD^FDEXAMPLE^FS\r",fhandle);fputs("^FO20,60^B3^FDAAA001^FS\r",fhandle);fputs("^PQ1,0,0,Y\r",fhandle);fputs("^XZ\r",fhandle);fputs("\n",fhandle);fclose(fhandle);::CopyFile("zebra.txt","LPT1",TRUE);return;}DELPHI示例……functionGETFONTHEX(outStr,lfFaceName,outstrname:Pchar;lfOrientation,lfHeight,lfW idth,lfBold,lfItalic:Integer;hexBuf:PCHAR):HINST;stdcall;……implementationfunction GETFONTHEX;external 'FNTHEX32.DLL';…….procedure TForm1.BtnPrintClick(Sender: TObject);varlpt:textfile;cbuf:pchar;str:string;beginassignFile(lpt,'LPT1');rewrite(lpt);str:=’测试文字’;//以下调用转换函数将TrueType文字(中文)转换为图形并发送至打印机内存中,参数说明见附录cbuf:=strAlloc(21000);GETFONTHEX(pchar(str),'黑体','strtest',0,32,0,0,0,cbuf);writeln(lpt,cbuf);strdispose(cbuf);writeln(lpt,'^XA');writeln(lpt,'^FO10,240^A0N,60,60^FDTEST^FS’); //使用打印机内部字体0打印文字“TEST”writeln(lpt,'^FO10,10^XGstrtest,1,1^FS');//打印TrueType文字(中文)writeln(lpt,'^FO10,100^BCN,100,Y,N,N,A^FD1234567^FS'); //打印128条码,内容为“1234567”,高度为100dotswriteln(lpt,'^PQ1');//打印一张标签writeln(lpt,'^XZ');writeln(lpt,'^XA');writeln(lpt,'^IDstrtest^FS');//清空打印机中的图像缓存writeln(lpt,'^XZ');CloseFile(lpt);end;附:GETFONTHEX函数参数说明* 1) LPSTR outStr, // 输出字符串的内容* 2) LPSTR lfFaceName, // TrueType字体名称* 3) LPSTR outstrname // 输出字符串的名称* 4) short int lfOrientation, // 旋转方向: 0,90,180,270* 5) short int lfHeight, // 字体高度,对于200dpi打印机,PC中的12号字在打印机中数值相当于32 * 6) short int lfWidth, // 字体宽度,汉字一般设为0,为方块字* 7) short int lfBold, //字体加粗* 8) short int lfItalic, // 斜体* 9) LPSTR hexBuf // 接收转换后图形的缓冲区。