快捷搜索:  汽车  科技

斑马打印机怎么设置打印条码(与斑马打印机打印条码2)

斑马打印机怎么设置打印条码(与斑马打印机打印条码2)/// <summary> /// CODE128条码生成; /// </summary> /// <param name="sn">条码内容</param> /// <param name="txt_x">文本起始X</param> /// <param name="txt_y">文本起始Y</param> /// <param name="txt_font">文本字体</param> /// <param name="txt_size">字体大小</param&

斑马打印机怎么设置打印条码(与斑马打印机打印条码2)(1)

前面写到斑马打印机的ZPL语言,及常用的命令。本次写下C#如何调用ZPL语言在斑马打印机上进行打印。

C#调用斑马打印机打印主要用到两个库:Fnthex32.dll和SMT.ZEBRA.dll,使用方法:SMT.ZEBRA.dll在项目中引用,Fnthex32.dll只需把dll放到C:\Windows\SysWow64和C:\Windows\System32 文件夹中即可。另外注意生成的程序要是32位,64位会报错。

代码实现:

主要用到的方法:ZebraPrinter.PrintLabEx(string n_strTemplateFilePath string n_strLabels string n_strPrinterName)

第一个参数:n_strTemplateFilePath是ZPL命令的路径地址,编写好的ZPL命令格式是.TXT或者.ZPL格式,注意要是大写。

第二个参数:n_strLabels标签数据集合字符串,多个标签行用'|'分割 单个标签行数据内部用'^'(字段)分割或'~'(文字或条码)分割

第三个参数:n_strPrinterName是打印机名称。

代码如下:

/// <summary> /// CODE128条码生成; /// </summary> /// <param name="sn">条码内容</param> /// <param name="txt_x">文本起始X</param> /// <param name="txt_y">文本起始Y</param> /// <param name="txt_font">文本字体</param> /// <param name="txt_size">字体大小</param> /// <param name="barcode_width">条码宽</param> /// <param name="barcode_x">条码起始X</param> /// <param name="barcode_y">条码起始Y</param> /// <param name="barcode_height">条码高</param> /// <param name="print_name">打印机名称</param> public void Print_code128(string sn string txt_x string txt_y string txt_font string txt_size string barcode_width string barcode_x string barcode_y string barcode_height string print_name) { FileStream F = new FileStream("code128.TXT" FileMode.Create FileAccess.ReadWrite FileShare.ReadWrite); F.Close(); StreamWriter sw = new StreamWriter("code128.TXT"); sw.WriteLine("^XA^PW709^LH0 0^FO" txt_x " " txt_y); sw.WriteLine("^CF" txt_font " " txt_size); sw.WriteLine("^FD" sn "^FS"); sw.WriteLine("#CN_DATA1#;|黑体 粗体|20|10|"); sw.WriteLine("^BY" barcode_width " 3.0"); sw.WriteLine("^FO" barcode_x " " barcode_y); sw.WriteLine("^BCN " barcode_height " N N N A"); sw.WriteLine("^FD#ID1#^FS^PQ1 0 1 Y^XZ"); sw.Close(); ZebraPrinter printer = new ZebraPrinter(); string str = string.Concat(" " "~" sn); string printPath = "code128.TXT"; printer.PrintLabEx(printPath str print_name); } /// <summary> /// PDF417条码生成; /// </summary> /// <param name="sn">条码内容</param> /// <param name="txt_x">文本起始X</param> /// <param name="txt_y">文本起始Y</param> /// <param name="txt_font">文本字体</param> /// <param name="txt_size">字体大小</param> /// <param name="barcode_width">条码宽</param> /// <param name="barcode_x">条码起始X</param> /// <param name="barcode_y">条码起始Y</param> /// <param name="barcode_height">条码高</param> /// <param name="print_name">打印机名称</param> public void Print_pdf417(string sn string txt_x string txt_y string txt_font string txt_size string barcode_width string barcode_x string barcode_y string barcode_height string print_name) { FileStream F = new FileStream("pdf417.TXT" FileMode.Create FileAccess.ReadWrite FileShare.ReadWrite); F.Close(); StreamWriter sw = new StreamWriter("pdf417.TXT"); sw.WriteLine("^XA^PW709^LH0 0^FO" txt_x " " txt_y); sw.WriteLine("^CF" txt_font " " txt_size); sw.WriteLine("^FD" sn "^FS"); sw.WriteLine("#CN_DATA1#;|黑体 粗体|20|10|"); sw.WriteLine("^BY" barcode_width " 3.0"); sw.WriteLine("^FO" barcode_x " " barcode_y); sw.WriteLine("^B7N " barcode_height " 2 N"); sw.WriteLine("^FD#ID1#^FS^PQ1 0 1 Y^XZ"); sw.Close(); ZebraPrinter printer = new ZebraPrinter(); string str = string.Concat(" " "~" sn); string printPath = "pdf417.TXT"; printer.PrintLabEx(printPath str print_name); } /// <summary> /// QR条码生成 /// </summary> /// <param name="sn">条码内容</param> /// <param name="txt_x">文本X位置</param> /// <param name="txt_y">文本Y位置</param> /// <param name="txt_font">文本字体</param> /// <param name="txt_size">文本大小</param> /// <param name="barcode_x">二维码X位置</param> /// <param name="barcode_y">二维码Y位置</param> /// <param name="barcode_Magnification">二维码放大系数</param> /// <param name="ErrorCorrectionLevel">二维码纠错级别</param> /// <param name="print_name">打印机名称</param> public void Print_QR(string sn string txt_x string txt_y string txt_font string txt_size string barcode_x string barcode_y string barcode_Magnification string ErrorCorrectionLevel string print_name) { FileStream F = new FileStream("QR.TXT" FileMode.Create FileAccess.ReadWrite FileShare.ReadWrite); F.Close(); StreamWriter sw = new StreamWriter("QR.TXT"); //第一段文字 sw.WriteLine("^XA^LH0 0^FO" txt_x " " txt_y); sw.WriteLine("^CF" txt_font " " txt_size); sw.WriteLine("^FD" sn "^FS"); //占位字符 sw.WriteLine("#CN_DATA1#;|黑体 粗体|20|10|"); //二维码 sw.WriteLine("^FO" barcode_x " " barcode_y); sw.WriteLine("^BQN 2 " barcode_Magnification); sw.WriteLine("^FD" ErrorCorrectionLevel "A #ID1#^FS^PQ1 0 1 Y^XZ"); sw.Close(); ZebraPrinter printer = new ZebraPrinter(); string str = string.Concat(" " "~" sn); string printPath = "QR.TXT"; printer.PrintLabEx(printPath str print_name); } private void button1_Click(object sender EventArgs e) { if(comboBox1.SelectedIndex==0) { zp.Print_code128(textBox1.Text "250" "75" "0" "50" "4" "80" "5" "60" printName); } else if(comboBox1.SelectedIndex == 1) { zp.Print_pdf417(textBox1.Text "90" "75" "0" "50" "5" "150" "70" "8" printName); } else { zp.Print_QR(textBox1.Text "160" "20" "0" "80" "50" "0" "4" "H" printName); } }

完整代码已上传,需要的关注我后私信发送“ZPL打印”即可获取。

猜您喜欢: