斑马打印机怎么设置打印条码(与斑马打印机打印条码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&

前面写到斑马打印机的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打印”即可获取。




