斑马打印机测试demo,一维码、二维码、字符串。可以保存创建模板以便于后续使用
利用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. 条码打印的两种方案: 后端ZPL指令打印 前端调用浏览器打印 2. 优缺点分析: 优点 缺点 后端ZPL指令 ...
- STM32F407获取OV7670摄像头图像及上位机解码(一维码二维码)
STM32F407获取OV7670摄像头图像及上位机解码(一维码&二维码) 1. 目的 针对静止拍摄图像场景,实现STM32F407对30万像素OV7670摄像头进行图像捕获,并通过串口将数据 ...
- 【Demo】 生成二维码 和 条形码
为什么80%的码农都做不了架构师?>>> 条形码 和 二维码 对比 一维条形码只是在一个方向(一般是水平方向)表达信息,而在垂直方向则不表达任何信息,其一定的高度通常是为了便于 ...
- STM32H750获取OV5640摄像头图像及上位机解码(一维码二维码)
STM32H750获取OV5640摄像头图像及上位机解码(一维码&二维码) 1. 目的 针对静止拍摄图像场景,实现STM32H750对500万像素OV5640摄像头进行图像捕获,并通过串口将数 ...
- STM32F407获取OV2640摄像头图像及上位机解码(一维码二维码)
STM32F407获取OV2640摄像头图像及上位机解码(一维码&二维码) 1. 目的 针对静止拍摄图像场景,实现STM32F407对200万像素OV2640摄像头进行图像捕获,并通过串口将数 ...
- STM32H750获取OV2640摄像头图像及上位机解码(一维码二维码)
STM32H750获取OV2640摄像头图像及上位机解码(一维码&二维码) 1. 目的 针对静止拍摄图像场景,实现STM32H750对200万像素OV2640摄像头进行图像捕获,并通过串口将数 ...
- STM32H750获取OV7670摄像头图像及上位机解码(一维码二维码)
STM32H750获取OV7670摄像头图像及上位机解码(一维码&二维码) 1. 目的 针对静止拍摄图像场景,实现STM32H750对30万像素OV7670摄像头进行图像捕获,并通过串口将数据 ...
- Andro Studio 基于Zing一维码二维码扫描代码
现在一维码二维码在我们的日常生活中使用如此的广泛,所以拥有扫码功能的APP变得非常普遍,一个安卓APP需要扫码功能就要用到zxing了,zxing是谷歌开源的让开发者更方便使用摄像头的库,而我们常用的 ...
- halcon视觉 一维、二维码的区别-@龙熙视觉培训李杰
一维码(条形码) 一维条码即指条码条和空的排列规则,常用的一维码的码制包括:EAN码.39码.交叉25码.UPC码.128码.93码,ISBN码,及Codabar(库德巴码)等. 条码是由一组规则排列 ...
最新文章
- 找不到物理服务器,日常物理服务器需要在什么地方升级?
- Vivado 随笔(1) 综合属性之 ram_style rom_style?
- Linux时间子系统之三:时间的维护者:timekeeper
- SSM实现个人博客-day02
- 2019-03-15-算法-进化(两数之和)
- linux定时任务执行url,科技常识:linux定时任务访问url实例
- Centos7 安装samba简单教程
- double类型数据保留四位小数的另一种思路
- 【MATLAB】矩阵的建立与访问
- android dlna 小米电视盒子,小米电视DLNA投屏到电视步骤详解
- 机械革命Z2air实现 Wake On Lan 远程开机
- 计嵌 廖峻 20178303040 C++作业
- SLA服务可用性4个9是什么意思?怎么达到?
- halcon算法库中各坐标系,位姿的解释及原理
- GitHub新漏洞!4行代码轰炸出6千万封电子邮件
- 程序员双十一剁手指南(2020)
- C语言sin()函数绘制正弦曲线代码(0-2π)
- 微分代数几何基础(1)
- 西门子828D 840Dsl数控程序PLC西门子数控程序中文注释
- CPUID、SGX中使用CPUID
热门文章
- 第二届邯郸钢铁展洽会 | 图扑软件荣获“2022钢铁行业智造之星奖”
- get请求获得传递参数
- 公众号H5页面接入微信登录流程
- 咏南linux中间件状态查看,咏南跨平台中间件
- (自学java的第三天)JPI文档、变量、数据类型
- String.length() 与 String.getBytes().length
- 鼠标悬浮显示图片和文字
- 互联网巨头在2018年竞争的主战场 这个技术的新风口已到
- asp.net930-绿能店电动车租赁系统
- stm32f4实现s6d1121+xtp2046触摸屏功能