利用RawPrinterHelper和Smt.Zebra两种方式进行打印控制

using Smt.Zebra;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Drawing.Printing;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Xml;namespace ZebarTest1
{public partial class Form1 : Form{public Form1(){InitializeComponent();}//底部状态栏结果显示private void ShowResult(int Result)   //  状态栏结果显示{//TextError.Text = Client.ErrorText(Result);//if (Result == 0)//    TextError.Text = TextError.Text + "(" + Client.ExecutionTime.ToString() + "ms)";}//使用斑马打印机打印private void button1_Click(object sender, EventArgs e){try{RawPrinterHelper.SendStringToPrinter(comboBox1.Text, this.textBox1.Text);实例化一个打印类ZebraPrinter printer = new ZebraPrinter();FileStream fs = new FileStream("Template.TXT", FileMode.Open, FileAccess.Read);StreamReader sr = new StreamReader(fs);while (sr.Peek() > 0){string str = sr.ReadLine();if (!string.IsNullOrEmpty(str)){///定义两个标签值//string str1 = tag1.Text;//string str2 = tag2.Text;依照格式,格式化成新的字符串//string str = string.Concat("条码1", "^", "条码2", "~", str1, "^", str2);   //双排条形码str = string.Concat(" ", "~", str);      //单排条形码    ,Concat连接三个指定实例//str = string.Concat(" ", "^", " ", "~", str, "^", str);   //双排条形码label6.Text = str;printer.PrintLabEx("Template.TXT", str, comboBox1.Text);//printPath:模板名程,从文本框里选。str为ZPL命令。  comboBox1.Text:打印机名称}}fs.Close();sr.Close();}catch (Exception ex){MessageBox.Show("Error" + ex.Message);}}//扫描打印机private void Form1_Load(object sender, EventArgs e){//显示时间timer1.Start();//选择打印机if (string.IsNullOrEmpty(comboBox1.Text)){groupBox1.Enabled = true;groupBox2.Enabled = true;}string template;//加载所有模板string[] files = Directory.GetFiles("Template");//("D:\\Visual Studio 2019\\VS Project\\Zebra\\ZebarTest1\\Template");foreach (string item in files){template = item.ToString();string str1 = template.Remove(0, 9);//string str1 = template.SubString(8);comboBox3.Items.Add(str1);}获取本地计算机上安装的全部打印机,保存到集合strCollects中//PrinterSettings.StringCollection strCollects = PrinterSettings.InstalledPrinters;//string strPrinterName = string.Empty;遍历集合,将全部打印机载入到下拉列表comboBox1中//foreach (String strName in strCollects)//{//    strPrinterName = strName.ToString();//    comboBox1.Items.Add(strPrinterName);//}//comboBox1.SelectedIndex = 0x00;#region 绑定打印机名称foreach (string item in PrinterSettings.InstalledPrinters)//获取安装在本计算机上的所有打印机名称{comboBox1.Items.Add(item);}if (comboBox1.Items.Contains("ZDesigner GK888t (EPL)")){comboBox1.Text = "ZDesigner GK888t (EPL)";}//备用//private void Smt_Zebra_WinForm_ZPL_Load(object sender, EventArgs e)//{//    PrinterSettings.StringCollection _strCollects = PrinterSettings.InstalledPrinters;//    string _strPrinterName = string.Empty;//    foreach (String _strName in _strCollects)//    {//        _strPrinterName = _strName.ToString();//        comboBox1.Items.Add(_strPrinterName);//    }//    comboBox1.SelectedIndex = 0x00;//}#endregion#region 设置默认值cbFenBianLv.SelectedIndex = 0;txtBiaoQianX.Text = "0";txtBiaoQianY.Text = "0";txtPrintX.Text = "230";txtPrintY.Text = "230";cbZhaiTiaoKuanDu.Text = "1";cbBiLi.SelectedIndex = 0;txtBarHeight.SelectedIndex = 0;cbPSD.SelectedIndex = 0;cbHSD.SelectedIndex = 3;cbFSD.SelectedIndex = 3;cbPrintZhuShi.SelectedIndex = 0;cbZhuShiHangWeiZhi.SelectedIndex = 1;cbZitiName.SelectedIndex = 0;cbZitiFangXiang.SelectedIndex = 0;txtH.SelectedIndex = 0;txtW.SelectedIndex = 0;txtPrintNeiRong.Text = "test text";//二维码参数cbQrOrientation.SelectedIndex = 0;cbQrModel.SelectedIndex = 1;cbQrMagnification.SelectedIndex = 1;cbQrSafe.SelectedIndex = 0;cbQrMaskValue.SelectedIndex = 0;#endregion}//激活配方public string printPath;private void button3_Click(object sender, EventArgs e){printPath = comboBox3.Text;if (printPath == String.Empty){MessageBox.Show("请选择你的模板");comboBox3.Focus();}else{//MessageBox.Show(printPath);//【1】创建文件流FileStream fs = new FileStream("Template\\" + printPath, FileMode.Open);//【2】创建读取器StreamReader sr = new StreamReader(fs);//【3】以流的方式读取数据this.textBox1.Text = sr.ReadToEnd();//【4】关闭读取器sr.Close();//【5】关闭文件流fs.Close();//  RawPrinterHelper.SendStringToPrinter(comboBox1.Text, this.textBox1.Text);}}//参数设置打印private void button2_Click(object sender, EventArgs e){if (!string.IsNullOrEmpty(comboBox1.Text)){string printNeiRong = "^FD" + txtPrintNeiRong.Text + "^FS";       //打印内容textBox3.Text = "Print==>" + txtPrintNeiRong.Text;#region 指令语法/*                带【】符号表示可以不设置^XA              表示新标签内容开始  【^JMn 】        改变每毫米打点数 n=A 打印机使用当前最高分辨率,n=B 打印分辨率减半^LH0,0           设置标签原点座标 x:标签原点的横坐标; y:标签原点的纵坐标 ^FO203,203       设置相对于标签原点的打印起始点座标^BY3,2.4,50      设置条码格式参数   w:条码中窄条的宽度,单位 dot,默认值:2dot,值范围:1~10dot; r:窄条和宽条的比例,默认值:3,值范围:2~3; h:条码高度:默认值 10dot 值范围 100~标签高度//^B3N,Y,,Y,N【^PRp,s,b 】    改变打印速度 p:打印速度,默认值:A,值范围:A~E(或2~8); s:回转速度,默认值:D,值范围:A~E(或2~8)A~E;  b:反馈速度,默认值:D,值范围:A~E(或2~8)A~E;【^Af,o,h,w】    设置字符字体 f:字体参数; o:字符方向参数,默认值:N,值范围:N(正常)、R(90度)、I(180)、B(270度); h:字符高度; w:字符宽度;* * 【^BCo,h,f,g,e,m】          设置128-B码打印格式 o:字符方向参数,默认值:N,值范围:N、R、I、B;     h:条码高度; f:打印解释行,Y为打印,N为不打印; g、解释行在条码上方还是下方,Y在条码上方,N在条码下方^FDABC123^FS     将FD后面的字符打印出来 即打印内容    (^FS表明要打印的内容结束)^XZ */#endregion//comboBox1.Text.Trim() == "";判断是否为空}else                                //(string.IsNullOrEmpty(comboBox1.Text.Trim())){MessageBox.Show("请选择您的打印机");comboBox1.Focus();}}//条形码写入private void button8_Click(object sender, EventArgs e){if (!string.IsNullOrEmpty(comboBox1.Text)){#region 参数变量string fenBianLv = "^JM" + cbFenBianLv.SelectedItem.ToString();      //  分辨率string biaoQianZuoBiao = "^LH" + txtBiaoQianX.Text + "," + txtBiaoQianY.Text;    //标签坐标string printStartEndZuoBiao = "^FO" + txtPrintX.Text + "," + txtPrintY.Text;      // 打印起始坐标string tiaomaCanshu = "^BY" + cbZhaiTiaoKuanDu.Text + "," + cbBiLi.SelectedItem.ToString() + "," + txtBarHeight.Text;     //条码宽度、比例和高度string ChangeSuDu = "^PR" + cbPSD.SelectedItem.ToString() + "," + cbHSD.SelectedItem.ToString() + "," + cbFSD.SelectedItem.ToString();     // 打印、回转、反馈速度string setZiti = "^A" + cbZitiName.SelectedItem.ToString() + cbZitiFangXiang.SelectedItem.ToString() + "," + txtH.SelectedItem.ToString() + "," + txtW.SelectedItem.ToString();    //字体参数,包括名称、方向、高度和宽度string barCodeType = "^BC" + cbZhaiTiaoKuanDu.Text + "," + txtBarHeight.SelectedItem.ToString() + "," + cbPrintZhuShi.SelectedItem.ToString() + "," + cbZhuShiHangWeiZhi.SelectedItem.ToString();     //条码编码类型,条码宽度 条码高度,是否打印注释,注释行位置string printNeiRong = "^FD" + txtPrintNeiRong.Text + "^FS";       //打印内容#endregiontextBox1.Text = "^XA" + "\t" + fenBianLv + "\t" + biaoQianZuoBiao + "\t" + printStartEndZuoBiao + "\t" + tiaomaCanshu + "\t" + ChangeSuDu + "\t" + setZiti + "\t" + barCodeType + "\t" + printNeiRong + "\t" + "^XZ";}else                                //(string.IsNullOrEmpty(comboBox1.Text.Trim())){MessageBox.Show("请选择您的打印机");comboBox1.Focus();}}//条形码打印private void button4_Click(object sender, EventArgs e){// 发送一个打印指令到打印机 cmbInstalledPrinters.Text打印机名称, this.richTextBox2.Text(指令)RawPrinterHelper.SendStringToPrinter(comboBox1.Text, this.textBox1.Text);}//保存为模板private void button5_Click(object sender, EventArgs e){try{string newTemplate = textBox2.Text + ".TXT";//【1】创建文件流FileStream fs = new FileStream("template\\" + newTemplate, FileMode.Create);//【2】创建写入器StreamWriter sw = new StreamWriter(fs);//【3】以流的方式写入数据sw.WriteLine(this.textBox1.Text.Trim());sw.Close();//【5】关闭文件流fs.Close();//刷新Combox内容comboBox3.Items.Add(newTemplate);}catch (Exception ex){MessageBox.Show("There is an IOException" + ex.Message);}MessageBox.Show("Save Succeed!", "验证提示", MessageBoxButtons.YesNoCancel);}//删除此模板private void button6_Click(object sender, EventArgs e){File.Delete("Template\\" + this.comboBox3.Text.Trim());//判断是否删除成功if (!File.Exists("Template\\" + this.comboBox3.Text.Trim())){MessageBox.Show("Delete Success!");}else { MessageBox.Show("Delete Fail!"); }comboBox3.Text = "";//刷新Combox内容comboBox3.Items.Clear();string[] files = Directory.GetFiles("Template");//("D:\\Visual Studio 2019\\VS Project\\Zebra\\ZebarTest1\\Template");foreach (string item in files){string template = item.ToString();string str1 = template.Remove(0, 9);//string str1 = template.SubString(8);comboBox3.Items.Add(str1);}}//显示时间组件private void timer1_Tick(object sender, EventArgs e){DateTime dt = System.DateTime.Now;label35.Text = dt.ToString();}//二维码写入private void button9_Click(object sender, EventArgs e){if (!string.IsNullOrEmpty(comboBox1.Text)){string fenBianLv = "^JM" + cbFenBianLv.SelectedItem.ToString();      //  分辨率string biaoQianZuoBiao = "^LH" + txtBiaoQianX.Text + "," + txtBiaoQianY.Text;    //标签坐标string printStartEndZuoBiao = "^FO" + txtPrintX.Text + "," + txtPrintY.Text;      // 打印起始坐标string printQr = "^BQ" + cbQrOrientation.SelectedItem.ToString() + "," + cbQrModel.SelectedItem.ToString() + "," + cbQrMagnification.SelectedItem.ToString();       //二维码参数string ChangeSuDu = "^PR" + cbPSD.SelectedItem.ToString() + "," + cbHSD.SelectedItem.ToString() + "," + cbFSD.SelectedItem.ToString();     // 打印、回转、反馈速度string setZiti = "^A" + cbZitiName.SelectedItem.ToString() + cbZitiFangXiang.SelectedItem.ToString() + "," + txtH.SelectedItem.ToString() + "," + txtW.SelectedItem.ToString();    //字体参数,包括名称、方向、高度和宽度//       纠错级别                        输入模式(M, 手动输入   A自动模式)                   字符模式(N 数字数据    A 字母数字数据)              数据字符串string printNeiRong = "^FD" + cbQrSafe.SelectedItem.ToString() + cbQrMaskValue.SelectedItem.ToString() + ","+ txtPrintNeiRong.Text + "^FS";       //打印内容#endregiontextBox1.Text = "^XA" + "\t" + fenBianLv + "\t" + biaoQianZuoBiao + "\t" + printStartEndZuoBiao + "\t" + printQr + "\t" + ChangeSuDu + "\t" + setZiti + "\t" + printNeiRong + "\t" + " ^ XZ";}else                                //(string.IsNullOrEmpty(comboBox1.Text.Trim())){MessageBox.Show("请选择您的打印机");comboBox1.Focus();}}//打印二维码private void button7_Click(object sender, EventArgs e){RawPrinterHelper.SendStringToPrinter(comboBox1.Text, this.textBox1.Text);}//打印字符串private void button10_Click(object sender, EventArgs e){if (!string.IsNullOrEmpty(textBox3.Text)){string fenBianLv = "^JM" + cbFenBianLv.SelectedItem.ToString();      //  分辨率string biaoQianZuoBiao = "^LH" + txtBiaoQianX.Text + "," + txtBiaoQianY.Text;    //标签坐标string printStartEndZuoBiao = "^FO" + txtPrintX.Text + "," + txtPrintY.Text;      // 打印起始坐标string setZiti = "^A" + cbZitiName.SelectedItem.ToString() + cbZitiFangXiang.SelectedItem.ToString() + "," + txtH.SelectedItem.ToString() + "," + txtW.SelectedItem.ToString();    //字体参数,包括名称、方向、高度和宽度string printNeiRong = "^FD" + txtPrintNeiRong.Text + "^FS";       //打印内容textBox1.Text = "^XA" + "\t" + fenBianLv + "\t" + biaoQianZuoBiao + "\t" + printStartEndZuoBiao + "\t" + setZiti + "\t" + printNeiRong + "\t" + " ^ XZ";}else{MessageBox.Show("请输入你的字符串! ");}}}
}

斑马打印机测试demo,一维码、二维码、字符串。可以保存创建模板以便于后续使用相关推荐

  1. 前端条码打印方案(表格+中文+一维码+二维码)

    前言 条码打印不同于普通打印机,条码大小各不相同,需要针对不同标签贴纸开发不同的样式 1. 条码打印的两种方案: 后端ZPL指令打印 前端调用浏览器打印 2. 优缺点分析: 优点 缺点 后端ZPL指令 ...

  2. STM32F407获取OV7670摄像头图像及上位机解码(一维码二维码)

    STM32F407获取OV7670摄像头图像及上位机解码(一维码&二维码) 1. 目的 针对静止拍摄图像场景,实现STM32F407对30万像素OV7670摄像头进行图像捕获,并通过串口将数据 ...

  3. 【Demo】 生成二维码 和 条形码

    为什么80%的码农都做不了架构师?>>>    条形码 和 二维码 对比 一维条形码只是在一个方向(一般是水平方向)表达信息,而在垂直方向则不表达任何信息,其一定的高度通常是为了便于 ...

  4. STM32H750获取OV5640摄像头图像及上位机解码(一维码二维码)

    STM32H750获取OV5640摄像头图像及上位机解码(一维码&二维码) 1. 目的 针对静止拍摄图像场景,实现STM32H750对500万像素OV5640摄像头进行图像捕获,并通过串口将数 ...

  5. STM32F407获取OV2640摄像头图像及上位机解码(一维码二维码)

    STM32F407获取OV2640摄像头图像及上位机解码(一维码&二维码) 1. 目的 针对静止拍摄图像场景,实现STM32F407对200万像素OV2640摄像头进行图像捕获,并通过串口将数 ...

  6. STM32H750获取OV2640摄像头图像及上位机解码(一维码二维码)

    STM32H750获取OV2640摄像头图像及上位机解码(一维码&二维码) 1. 目的 针对静止拍摄图像场景,实现STM32H750对200万像素OV2640摄像头进行图像捕获,并通过串口将数 ...

  7. STM32H750获取OV7670摄像头图像及上位机解码(一维码二维码)

    STM32H750获取OV7670摄像头图像及上位机解码(一维码&二维码) 1. 目的 针对静止拍摄图像场景,实现STM32H750对30万像素OV7670摄像头进行图像捕获,并通过串口将数据 ...

  8. Andro Studio 基于Zing一维码二维码扫描代码

    现在一维码二维码在我们的日常生活中使用如此的广泛,所以拥有扫码功能的APP变得非常普遍,一个安卓APP需要扫码功能就要用到zxing了,zxing是谷歌开源的让开发者更方便使用摄像头的库,而我们常用的 ...

  9. halcon视觉 一维、二维码的区别-@龙熙视觉培训李杰

    一维码(条形码) 一维条码即指条码条和空的排列规则,常用的一维码的码制包括:EAN码.39码.交叉25码.UPC码.128码.93码,ISBN码,及Codabar(库德巴码)等. 条码是由一组规则排列 ...

最新文章

  1. 找不到物理服务器,日常物理服务器需要在什么地方升级?
  2. Vivado 随笔(1) 综合属性之 ram_style rom_style?
  3. Linux时间子系统之三:时间的维护者:timekeeper
  4. SSM实现个人博客-day02
  5. 2019-03-15-算法-进化(两数之和)
  6. linux定时任务执行url,科技常识:linux定时任务访问url实例
  7. Centos7 安装samba简单教程
  8. double类型数据保留四位小数的另一种思路
  9. 【MATLAB】矩阵的建立与访问
  10. android dlna 小米电视盒子,小米电视DLNA投屏到电视步骤详解
  11. 机械革命Z2air实现 Wake On Lan 远程开机
  12. 计嵌 廖峻 20178303040 C++作业
  13. SLA服务可用性4个9是什么意思?怎么达到?
  14. halcon算法库中各坐标系,位姿的解释及原理
  15. GitHub新漏洞!4行代码轰炸出6千万封电子邮件
  16. 程序员双十一剁手指南(2020)
  17. C语言sin()函数绘制正弦曲线代码(0-2π)
  18. 微分代数几何基础(1)
  19. 西门子828D 840Dsl数控程序PLC西门子数控程序中文注释
  20. CPUID、SGX中使用CPUID

热门文章

  1. 第二届邯郸钢铁展洽会 | 图扑软件荣获“2022钢铁行业智造之星奖”
  2. get请求获得传递参数
  3. 公众号H5页面接入微信登录流程
  4. 咏南linux中间件状态查看,咏南跨平台中间件
  5. (自学java的第三天)JPI文档、变量、数据类型
  6. String.length() 与 String.getBytes().length
  7. 鼠标悬浮显示图片和文字
  8. 互联网巨头在2018年竞争的主战场 这个技术的新风口已到
  9. asp.net930-绿能店电动车租赁系统
  10. stm32f4实现s6d1121+xtp2046触摸屏功能