Code128码打印ZPL语言BySue.docx
《Code128码打印ZPL语言BySue.docx》由会员分享,可在线阅读,更多相关《Code128码打印ZPL语言BySue.docx(9页珍藏版)》请在冰豆网上搜索。
![Code128码打印ZPL语言BySue.docx](https://file1.bdocx.com/fileroot1/2023-1/29/ba76a48d-9366-4c1b-ba1d-812017636762/ba76a48d-9366-4c1b-ba1d-8120176367621.gif)
Code128码打印ZPL语言BySue
Code128码打印---ZPL语言BySue
使用斑马打印机专门的打印命令ZPL语言进行VIN码打印1.斑马打印机驱动的设置
(1)使用的打印纸大概为------6.5cm*1.3cm
(2)设置PaperSize的大小为6.5cm*1.3cm-----使用的是用户自定义大小
(3)设置打印的浓度PrinterDarkness为10(默认为10)---可使用打印命令^MD16设置打印浓度
(4)设置PrinterActions设置如下所示,具体作用不是很清楚
2.ZPL命令简单使用
(1)^XA和^XZ是开始和结束标记
(2)^MD30设置色带颜色的深度,取值范围从-30到30,30为最深颜色深度
(3)^LH设置条码纸的边距
(4)^FO设置条码左上角的位置,0,0代表完全不留边距
(5)^ACN是设置字体的.因为在条码下方会显示该条码的内容,所以这里要设一下字体.这个字体跟条码无关.
^Afo,h,w
(6)^BY是设置条码样式
^BY命令的格式:
改变条码默认参数
^Byw,r,h
w模块(窄条)宽开机初始化值:
2点可接受的数值:
1-10点
r宽条与窄条的比例开机初始化值:
.0可接受的数值:
.0到3.0,,.1的增量(对固定比例的条码无效)效)
h条码高度开机初始化值:
,点可接受的数值:
点到标签高度
(7)^BC是打印code128的指令
(8)^FD设置要打印的内容,^FS表示换行.
(9)^XG命令用于调用一个或多个要进行打印的图形图像
(10)~DGd:
o.x,t,w,data
3.VIN(17位)条形码打印------使用ZPL语言即命令来实现Zebra打印机打印条形码
(1)使用ZPL语言实现打印,下面是实现函数ZebraPrintpackagecn.edu.hust.mes.client.utils;
importjava.io.File;
importjava.io.FileInputStream;
importjavax.print.Doc;
importjavax.print.DocFlavor;
importjavax.print.DocPrintJob;
importjavax.print.PrintException;importjavax.print.PrintService;
importjavax.print.PrintServiceLookup;importjavax.print.SimpleDoc;
publicclassZebraPrint{
byte[]dotfont;
Strings_prt="^XA,^MD16",s_prt_buffer="";
//^XA打印开始标志^MD打印浓度为30^ABN,30,30设置字体大小
//长,宽
publicstaticvoidmain(String[]args){
try{
ZebraPrinta=newZebraPrint();
a.setCommand("LNBMDLAA1CR023837");
Stringstr=a.getCommand();
System.out.println(str);
a.print(str);
}catch(Exceptione){
e.printStackTrace();
}
}
publicZebraPrint()throwsException{
Filefile=newFile(System.getProperty("user.dir")+"\\src\\resources\\ts24.lib");
FileInputStreamfis=newFileInputStream(file);
dotfont=newbyte[fis.available()];
fis.read(dotfont);
fis.close();
}
publicvoidsetCommand(Stringbarcode){
//Stringbarcode="ABCD1234567890123";
//printBarcode(barcode,30,60,60);
//printBarcode(barcode,30,60);
printBarcode(barcode,100,40);//打印之后能够正确扫描
//printBarcode(barcode,100,100);
}
publicvoidsetCommand(Stringbarcode,intx,inty,intfontX,intfontY,intthinBarcode,int
times,intheight){
//Stringbarcode="ABCD1234567890123";
//printBarcode(barcode,30,60,60);
//printBarcode(barcode,30,60);
printBarcode(barcode,x,y,fontX,fontY,thinBarcode,times,height);//打印之后能够正确扫描
//printBarcode(barcode,100,100);
}
publicStringgetCommand(){
returns_prt+s_prt_buffer+"^XZ";
//^XZ打印结束
}
publicvoidprint(Stringstr)throwsPrintException{
PrintServicepsZebra=PrintServiceLookup.lookupDefaultPrintService();
if(psZebra==null){
System.out.println("没有发现条码打印机.");
return;
}
DocPrintJobjob=psZebra.createPrintJob();
byte[]by=str.getBytes();
DocFlavorflavor=DocFlavor.BYTE_ARRAY.AUTOSENSE;
Docdoc=newSimpleDoc(by,flavor,null);
job.print(doc,null);
}
/**
*打印条形码
*@parambarcode字符串
*@paramxxx坐标
*@paramyyy坐标
*@paramfontX字体高度单位:
dots
*@paramfontY字体宽度
*@paramthinBarcode窄条宽度单位:
dots可接受的数值:
1-10点
*@paramtimes宽条与窄条的比例可接受的数值:
.0到3.0,,.1的增量(对固定比例的条码无效)
*@paramheight高度可接受的数值:
点到标签高度
*/
protectedvoidprintBarcode(Stringbarcode,intx,inty,intfontX,intfontY,intthinBarcode,int
times,intheight){
System.out.println(barcode);
//s_prt_buffer+="^BY3^FS^FO"+x+","+y+"^BEN,"+h+"^FD"+barcode+"\n";
s_prt_buffer+=
"^FO"+x+","+y+"^A1N,"+fontX+","+fontY+"^BY"+thinBarcode+","+times+","+height+"^BCN,,
Y,N^FD"+barcode+"\n";
}
protectedvoidprintBarcode(Stringbarcode,intx,inty){
System.out.println(barcode);
//s_prt_buffer+="^BY3^FS^FO"+x+","+y+"^BEN,"+h+"^FD"+barcode+"\n";
s_prt_buffer+="^FO"+x+","+y+"^A5N,30,33^BY4,3,150^BCN,,Y,N^FD"+barcode+
"\n";
//s_prt_buffer+="^FO"+x+","+y+"^BY4^BCN,150,Y,N,Y,N^FD"+barcode+"^FS";
//s_prt_buffer+=
"^FO"+x+","+y+"^BY4^BCN,150,Y,N,Y,N^FD>;>80012345123451234512^FS";
/*
*
^XA
^FO90,200^BY4
^BCN,256,Y,N,Y,N
^FD>;>80012345123451234512^FS
^XZ
^FO设置条码位置
^FD设置要打印的内容,^FS表示换行
^BY命令的格式:
改变条码默认参数
^Byw,r,h
w模块(窄条)宽开机初始化值:
2点可
接受的数值:
1-10点
r宽条与窄条的比例开机初始化值:
.0可接受的
数值:
.0到3.0,,.1的增量(对固定比例的条码无效)
h条码高度开机初始化值:
,点可接受的数
值:
点到标签高度
*/
}
}
(2)上面的s24.lib包需要添加-----放在项目下(需要注意路径问题)
(3)下面的ZPL函数能够在6.5*1.3cm的纸张下打印出条形码长度与注释长度等宽
条形码和注释等宽:
VIN码长度为17位
^XA,^MD16^FO100,40^A5N,30,33^BY4,3,150^BCN,,Y,N^FDLNBMDLAA1CR023837
^XZ
Sueremarks:
在调整条形码和注释等宽的时候,当字体类型和大小很难调整,达到要求
时,可以考虑调整宽条与窄条的比例