Zebra条码打印机编程命令

合集下载

Zebra打印机中文字体指令调用说明

Zebra打印机中文字体指令调用说明

Zebra打印机中文字体指令调用说明
使用指令调用中文字体时正确完整的流程应该包含以下三指令:^SE用于选择所需的ZPL 或ZPL II 编码表。

^CW所有内置字体都是通过使用单字符的标识符进行引用。

^CI使用^CI 命令可以调用您要用来进行打印的国际字符集,可以在标签上组合打印不同的字符集,开机后默认的字符集代码为0。

说明:
1,对于工业打印机有时候可以不使用SE指令指定,估计是默认的编码表可以打印中文
2,必须对内置的字体进行单字符的标识符来引用
3,CI指令上常用的值为14、26、28,对于14来说只能打印每行文字全是中文,26可以打印每行文字既有中文也有英文,28是UTF-8字符,要是一个标签既有中文,英文,俄文之类的可以通过CI 指令指定。

Zebra105SL斑马条码打印机用户使用手册

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(-)按钮来选取其它的值。

斑马条码打印机使用手册

斑马条码打印机使用手册

Zebra 105SE/SL中文使用手册1、打印机的参数斑马公司推出的105SE/SL打印机是一款经济实用的条码条印机,它具有较多的打分辨率选择,除了应用最广的203dpi标准配置外,还有152dpi打印头,特别适用于打印UPC码和EAU码,它可以达到令人满意的100%放大率,当需要在一张标签上打印很多信息时,可以选择300dpi的打印头,特别适用于打印高密度条码和明快的图像以及小字号的文字。

Zebra 105SL热传感打印机为一种工业级,金属壳条形码打印机,它是斑马公司经典机型105SE的换代机型.在105SE 基础上增加了液晶面板控制,ZebraLink网络连接以及更大的内容空间等多项功能。

105SL适用于任何场合的标签打印,如:钢厂的金属卷、码头上的货盘、锯木场中的木材/工厂的零件以及仓贮打印标签。

.全金属外壳,可长时间工作。

.特有的后备电池(选件)可以使打印机关机后仍能将图文长时间保存下来。

.内置回绕器(选件)可以将直径8英寸的标签回卷,以防沾染灰尘。

.32位RISC微处理器,当需要打印尺寸且有复杂图形的标签时,内存可扩至1MB。

.快速的32位微处理器,配以简单易用的ZPII编程语言,可以做到一边打印一边排版,令您在很短的时间内.打印出更多的标签。

.自动测纸、可升级字体、彩色可操作部件、Zebra的E3打印元件控制技术、反射式传感器。

1.1 Zebra 105SL打印机参数表.打印机规格打印方式:热转/热敏方式(不用碳带)最大打印宽度:104mm最大打印长度:(203dpi)2692mm或(300dpi)165mm(标准内存)分辨率:203dpi(8点/mm);300dpi(12点/mm)打印速度:(203dpi)203mm/秒或(300dpi)203mm/秒.物理特性:长度:495mm 宽度:283mm 高度:394mm结构:全金属结构,大视窗净重:25kg.产品特性:标准内存:3MB DRAM 750K FLASH;扩展内存到8Mb32位RISC微处理器自动测纸可升级字体彩色可操作部件 Zebra 的E3打印元件控制技术穿透式传感器选配:回卷器、切刀、底纸剥离器.软件:ZPL II 编程语言.使用环境:操作温度:5—40度存储温度:-40—60度操作湿度:20%—80% 存储湿度:5%—85%.其它参数:.电气参数:内置自动转换电源90V/265V 48—62Hz 最大电流5A.通迅接口:RS232/422/485 接口及标准并口:IEEE1284双向并口准并口.标签:标签宽度:25.4mm-114mm标签最大直径:外径203mm,内径76mm标签纸类型:连续型、模切型、缺口型、黑标型、穿口型标签间隙:2mm—4mm 标签厚度:0.058-0.25mm最小长度:撕裂方式:16mm;剥离方式:25mm:切刀方式:38mm.碳带:标准长度:300m、450m,提供2:1标签卷宽度:51—4.311mm 卷轴内径:25mm 卷轴最大直径:81mm1.2 打印机支持的条码条码比例:2:1, 7:3, 5:2, 3:1 LSBT-128codebar(支持的条码比例尺2:1,3:1) LOGMARSMaxiCode codeblock code11Micro pdfcode 39(支持的条码比例尺2:1,3:1) MSIcode93 PDF-417(二维码)code128(A,B,C) PlessyDataMatrix PostnetEAN-3,EAN-13,EAN extensions QR-CodeIndustrial2of5 Standard 2 of 5Interleaved 2 of 5(支持的条码比例尺2:1,3:1)UPC-1,UPC-3,UPCv扩展2 打印机的使用2.1 打印机电源电源开关位于打印机后面,而且可以看见有一个230V或110V的拨动开关。

Delphi调用Zebra打印机的ZPL指令来打印条形码

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

斑马打印机全部屏幕设置秘籍大全

斑马打印机全部屏幕设置秘籍大全

斑马打印机设置大全首先必须要理解的屏幕英文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键离开设置模式。

斑马ZebraZPLII指令集---中文说明解释

斑马ZebraZPLII指令集---中文说明解释

斑马ZebraZPLII指令集---中⽂说明解释我们最常⽤的斑马(Zebra)条码打印机,应⽤ZPLII命令来控制打印,说明书中有每条指令的详细说明及相关⽰例,下⾯是各指令的中⽂释义:^A 对Zebra内置点阵字体缩放 ^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^XAA@N,25,25,B:CYRILLIC.FNT^FO100,20^FS^FDThis is a test.^FS^A@N,50,50^FO200,40^FS^FDThis string uses the B:Cyrillic.FNT^FS^XZ 第⼀⾏命令将查找字体卡/后备电池RAM(B:)中的“Cyrillic.FNT”字体,当字体找到后,命令将继续定义字符的⽅向,⼤⼩,然后在标签上打印字段数据“This is a test.” ⼀旦^A命令定义⼀个新字体名时。

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

范例: ^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:
指令名稱:檢測標簽紙指令
指令作用:當您更換不同大小的紙張時,需重新檢測紙張大小,以便在換紙后列印內容能在正
--各印表機型每毫米點數--
152 DPI(1mm 6pt): 90A
203 DPI(1mm 8 pt): S300,S500,105S,160S,140,140XI,Z4000
300 DPI(1mm 12pt): 90XI,170XI(1mm 12pt)
600 DPI(1mm 24pt): 96xiIII,BRADY600
THANKS !!!
致力为企业和个人提供合同协议,策划案计划书,学习课件等等
打造全网一站式需求
欢迎您的下载,资料仅供参考
这个类封装了对并口的操作,它的使用方法为:
var printer = new Printer(); if (!printer.Open()) { GB.IO.SetError("未能连接打印机,请确认打印机是否安装正确并接通电源。"); return; } printer.Write(cmd); if (!printer.Close()) { GB.IO.SetError("未能关闭与打印机之间的连接,这可能意味着严重的错误,请重启电脑及打印机。"); return; }

VB使用ZPL指令控制zebra打印机案例

VB使用ZPL指令控制zebra打印机案例Dim i As Integer, j As Integer, nCount As Integer, col_count As Long Dim zpl_head(12) As String, zpl_foot As String Dim cell_width_ini As Integer, cell_height_ini(3) As IntegerDim tmp_MAC() As String, tmp_SN() As String Dim zpl_text_MAC() As String, zpl_text_SN() As StringDim zpl_barcode_MAC() As String, zpl_barcode_SN() As StringDim cbuf As String * 21000'**************************'设置打印开始信息'**************************zpl_head(0) = "^XA" '起始符zpl_head(1) = "^LH0,0" '参考点zpl_head(2) = "^FO540,60^GB0,1850,7^FS" '竖线zpl_head(3) = "^FO1025,60^GB0,1850,7^FS" '竖线zpl_head(4) = "^FO10,242^GB1100,0,7^FS" '横线zpl_head(5) = "^FO10,422^GB1100,0,7^FS" '横线zpl_head(6) = "^FO10,602^GB1100,0,7^FS" '横线zpl_head(7) = "^FO10,782^GB1100,0,7^FS" '横线zpl_head(8) = "^FO10,962^GB1100,0,7^FS" '横线zpl_head(9) = "^FO10,1152^GB1100,0,7^FS" '横线zpl_head(10) = "^FO10,1332^GB1100,0,7^FS" '横线zpl_head(11) = "^FO10,1512^GB1100,0,7^FS" '横线zpl_head(12) = "^FO10,1692^GB1100,0,7^FS" '横线'*******************************' 计算列循环次数,各数组下标'*******************************col_count = (Grid1.Rows - 1) / 10 + CInt(CBool((Grid1.Rows - 1) Mod 10)) * (-1)ReDim tmp_MAC(Grid1.Rows - 1)ReDim tmp_SN(Grid1.Rows - 1)ReDim zpl_text_MAC(Grid1.Rows - 1)ReDim zpl_text_SN(Grid1.Rows - 1)ReDim zpl_barcode_MAC(Grid1.Rows - 1)ReDim zpl_barcode_SN(Grid1.Rows - 1)'*******************************'设置标签体'*******************************'单元初始X坐标cell_width_ini = 97For i = 1 To col_count'单元初始Y坐标cell_height_ini(0) = 88cell_height_ini(1) = 116cell_height_ini(2) = 147cell_height_ini(3) = 180For j = 1 To 10'第一单元:MAC文字nCount = GETFONTHEX("MAC:" & Grid1.TextMatrix((i - 1) * 10 + j, 0), "verdana", "MAC" & CStr((i - 1) * 10 + j), 0, 32, 16, 0, 0, cbuf) tmp_MAC((i - 1) * 10 + j) = Mid(cbuf, 1, nCount)zpl_text_MAC((i - 1) * 10 + j) = "^FO" & CStr(cell_width_ini) & "," & CStr(cell_height_ini(0)) & "^XG" & "MAC" & CStr((i - 1) * 10 + j) & ",1,1^FS"'第二单元:MAC条码zpl_barcode_MAC((i - 1) * 10 + j) = "^FO" & CStr(cell_width_ini) & "," & CStr(cell_height_ini(1)) & "^BCN,33,N,N^FD" & Grid1.TextMatrix((i - 1) * 10 + j, 0) & "^BY1.87,5.369^FS"'第三单元:SN文字nCount = GETFONTHEX("S/N:" & Grid1.TextMatrix((i - 1) * 10 + j, 1), "verdana", "SN" & CStr((i - 1) * 10 + j), 0, 32, 16, 0, 0, cbuf) tmp_SN((i - 1) * 10 + j) = Mid(cbuf, 1, nCount)zpl_text_SN((i - 1) * 10 + j) = "^FO" & CStr(cell_width_ini) & "," & CStr(cell_height_ini(2)) & "^XG" & "SN" & CStr((i - 1) * 10 + j) &",1,1^FS"'第四单元:SN条码zpl_barcode_SN((i - 1) * 10 + j) = "^FO" & CStr(cell_width_ini) & "," & CStr(cell_height_ini(3)) & "^BCN,33,N,N^FD" & Grid1.TextMatrix((i - 1) * 10 + j, 1) & "^BY1.87,5.369^FS"If (i - 1) * 10 + j = Grid1.Rows - 1 ThenExit ForEnd Ifcell_height_ini(0) = cell_height_ini(0) + 180cell_height_ini(1) = cell_height_ini(1) + 180cell_height_ini(2) = cell_height_ini(2) + 180cell_height_ini(3) = cell_height_ini(3) + 180Next jcell_width_ini = cell_width_ini + 500Next i'*******************************'设置标签结束信息'*******************************zpl_foot = "^XZ"'*******************************'输出信息'*******************************Dim str1 As String, str2 As String, str3 As String, str4 As String str1 = ""str2 = ""str3 = ""str4 = ""For i = 0 To 12str1 = str1 & zpl_head(i) & Chr(13) NextFor i = 0 To Grid1.Rows - 1str2 = str2 & tmp_MAC(i) & Chr(13)str3 = str3 & tmp_SN(i) & Chr(13) NextFor i = 0 To Grid1.Rows - 1str4 = str4 & zpl_text_MAC(i) & Chr(13)str4 = str4 & zpl_barcode_MAC(i) & Chr(13)str4 = str4 & zpl_text_SN(i) & Chr(13)str4 = str4 & zpl_barcode_SN(i) & Chr(13) Next。

[VIP专享]斑马Zebra 170Xi4全天候工业条码打印机操作手册

斑马Zebra 170Xi4全天候工业条码打印机操作手册Zebra 170Xi41、Zebra 170Xi4条码打印机各部位介绍1.1 打印辊/控制面板/打印头总成/打印头开启杆/色带拾取轴/色带供应轴/介质供应导板/介质供应架1.2 电源指示灯/暂停指示灯/错误指示灯/数据指示灯/液晶显示屏/加号(+)号按钮/上一个按钮/减号(-)按钮/设置退出按钮/下一个保存按钮/校准按钮/暂停按钮/进纸按钮/取消按钮1.3 剥离模式下结构说明打印头开启杆/介质导板/介质导板滚轮/介质供应导板/介质/介质供应架/导板/轴钩/回卷轴/标签背衬/回卷板(已取下)/切纸杆/已打印标签1.4 切纸器模式下结构说明打印头开启杆/介质导板/介质导板滚轮/介质供应导板/介质/切纸器1.5 回卷模式下结构说明打印头开启杆/介质导板/介质导板滚轮/介质供应导板/标签/导板/轴钩/回卷轴/回卷板/已打印标签2、Zebra 170Xi4条码打印机控制面板按钮指示灯说明2.1 控制面板按钮说明■ FEED(进纸),功能:每次按下按钮,可强制打印机送入一张空白标签,①打印机未在打印,立即送入一张空白标签;②正在打印,完成当前标签批次后,送入一张空白标签。

■ PAUSE(暂停),功能:启动或停止打印机操作,或删除错误消息并清除液晶显示屏,①如果打印机空闲,它将立即进入“暂停”模式;②如果打印机正在打印,标签将在打印机暂停之前完成。

■ CANCEL(取消),功能:打印机暂停时,取消打印作业,①打印机未在打印,不打印存储的下一个标签格式;②正在打印,打印完当天标签,并取消下一个标签格式,按下并保持几秒可以取消内存中的所有打印作业。

■ SETUP/EXIT(设置/退出),功能:进入和退出配置模式■ PREVIOUS(上一个),功能:在设定模式下时,可将液晶屏滚动到上一个参数,按下该按钮并保持,可快速滚动。

■加号(+),功能:更改参数值,通常用于增大值,回答“是”,在选项之间滚动,或在输入打印机密码时更改输入值。

斑马打印机 ZPL II 语言编程


指令种类

格式指令(format commands)
» 以^开始 » 用于设定标签格式与数据 » 多条格式指令按顺序执行

控制指令(control commands)
» 以~开始 » 迫使打印机立即执行某一个指定的操作 » 可以中断打印机数据缓冲器中的格式指令
格式指令
格式指令有以下分类
格式框架指令-format bracket commands 标签定义指令-label definition commands 字段定义指令-field definition commands 字段默认指令-field default commands 格式默认指令-format default commands 格式旋转指令-format rotation commands 打印机控制指令-printer control commands 文字数字字段指令-alphanumeric field commands 条形码字段指令-bar code field commands 图像指令-graphic image commands

如果一个格式里面有多个^PO指令,只有最后一个才有效。 只有接收到下一个^PO指令时,前一个^PO指令才失效


一行:
^XA^FO100,75^BY3^B3N,N,100,Y,N^FD123ABC^XZ 使用默认参数: ^XA^FO100,75^BY3^B3,,100^FD123ABC^XZ
文本打印
打印文本
开始标签格式 ^XA 原点位置 ^LH0,0 文本位置 ^FO203,203 字体类型与大小 ^ABN,30,30 打印的正文字符串 ^FDExample^FS 结束标签格式 ^XZ
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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轴缩放系数调整等控制命令需置于标签容设置命令之前,也可忽略这些控制命令,直接在打印机上调节。

以上是一些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^FD2^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,l fWidth,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 // 接收转换后图形的缓冲区。

相关文档
最新文档