在C#中用一个按钮控制斑马zebra条码打印机进行打印
C#Winform控制斑马打印机打印条码标签
前言
这两天在做一个用C#控制斑马标签打码机进行打印条码。
首先打印机选型为 Zebra GT820这个型号
接着在官网上查询相关驱动和Designer设计器
https://download.csdn.net/download/HEIMENGER/22002254
上方为驱动,下方为设计器,安装好后,打开Designer,设计你自己的需要打印的内容,如下图所示
点击打印,出现以下界面
勾选Print to file,保存到你C#项目目录下的Debug下,并在工程文件中添加现有项
接下来,打开C#创建一个Winform
添加引用为这两个DLL文件
斑马条码打印机联合C#链接,点击即可https://download.csdn.net/download/HEIMENGER/22002625
再添加按钮,并触发其点击事件,将 PrintLabel();放入到触发事件当中去
再将以下代码复制到你的项目中去即可使用,但会出现命名空间的错误,添加其所需的命名空间即可,如果没有就添加引用,下面是所有的引用
using LabelHelper;
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.Management;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;namespace 控制斑马打印机打印条码标签
{public partial class Form1 : Form{public Form1(){InitializeComponent();}private void PrintLabel(){if (this.InvokeRequired){this.Invoke(new MethodInvoker(delegate { PrintLabel(); }));return;}PrintDocument printDoc = new PrintDocument();printDoc.PrinterSettings.PrinterName = "ZDesigner GT800 (EPL)"; //获取打印机型号string filePath = Environment.CurrentDirectory; //定义变量路径为Debugstring fileName = "1.prn";if (File.Exists(fileName) == false){MessageBox.Show("未找到标签模板");return;}ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT * FROM Win32_Printer");bool printerExist = false;foreach (ManagementObject printer in searcher.Get()){if (printer["Name"].ToString().Equals(printDoc.PrinterSettings.PrinterName)){printerExist = true;if (printer["WorkOffline"].ToString().ToLower().Equals("true")){// printer is offline by userMessageBox.Show("打印机不在线");return;}}} //枚举判断打印机if (!printerExist){MessageBox.Show("未找到打印机");return;}byte[] buffer = null;using (FileStream fs = new FileStream(fileName, FileMode.Open)) //读取数据和写入数据{buffer = new byte[fs.Length];fs.Read(buffer, 0, (int)fs.Length);fs.Close();fs.Dispose();}LabelPrintHelper.SendFileToPrinter(buffer, printDoc.PrinterSettings.PrinterName, fileName, "90178333244178874429027231");//打印}private void button1_Click(object sender, EventArgs e){PrintLabel();}}}
如果条码变量进行变化,那添加以下代码,设置变量更改即可
using LabelHelper;
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.Management;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;namespace 控制斑马打印机打印条码标签
{public partial class Form1 : Form{public Form1(){InitializeComponent();}private void PrintLabel(){if (this.InvokeRequired){this.Invoke(new MethodInvoker(delegate { PrintLabel(); }));return;}PrintDocument printDoc = new PrintDocument();printDoc.PrinterSettings.PrinterName = "ZDesigner GT800 (EPL)"; //获取打印机型号string filePath = Environment.CurrentDirectory; //定义变量路径为Debug//string fileName = filePath + "\\1.prn";string fileName = "1.prn";string newFileName = filePath + "\\1.new.prn";if (File.Exists(fileName) == false){MessageBox.Show("未找到标签模板");return;}ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT * FROM Win32_Printer");bool printerExist = false;foreach (ManagementObject printer in searcher.Get()){if (printer["Name"].ToString().Equals(printDoc.PrinterSettings.PrinterName)){printerExist = true;if (printer["WorkOffline"].ToString().ToLower().Equals("true")){// printer is offline by userMessageBox.Show("打印机不在线");return;}}} //枚举判断打印机if (!printerExist){MessageBox.Show("未找到打印机");return;}byte[] buffer = null;using (FileStream fs = new FileStream(fileName, FileMode.Open)) //读取数据和写入数据{buffer = new byte[fs.Length];fs.Read(buffer, 0, (int)fs.Length);/*****************************************************************查询文本中这段字符************************将其改变为这段字符****可设置为变量*******最后一段数字为时间设置变量*******/buffer = LabelPrintHelper.Replace(buffer, Encoding.ASCII.GetBytes("3836556465461"), Encoding.ASCII.GetBytes("987654321987654"), "90178333244178874429027231");fs.Close();fs.Dispose();}LabelPrintHelper.SendFileToPrinter(buffer, printDoc.PrinterSettings.PrinterName, newFileName, "90178333244178874429027231");//打印}private void button1_Click(object sender, EventArgs e){PrintLabel();}}}
下面是程序的全部源码
https://download.csdn.net/download/HEIMENGER/22002680
这样即可利用Winform简单控制打印机进行打印
在C#中用一个按钮控制斑马zebra条码打印机进行打印相关推荐
- flash一个按钮控制动画_PLC三组灯用一个按钮控制
今天作一个PLC小练习 用一个按钮控制三组或三个灯,以达到控制灯的亮度,由PLC组成一个控制器,每按一次按钮增加一组灯亮,三组灯全亮后,每按一次按钮,灭一组灯(为了使每组灯亮的时间尽量相等,要求先亮的 ...
- js实现在页面实时显示时间,一个按钮控制时间暂停和开始
js实现在html实时显示时间,一个按钮控制时间暂停和开始.代码如下: <head><meta charset="UTF-8"><title>& ...
- 一个按钮控制灯的开关
一个按钮控制灯的开关 可以通过Simulator进行模拟展示
- flash一个按钮控制动画_flutter闪屏过渡动画,闪光占位动画
在程序设计的理念中,讲究一切都来源于物理世界,在现实世界中,人们在每接触到一个新的事物或者说在手指触碰到一个事物时,总是心里默许期望有一个反馈效果,这就是来源于心底深处常常被人忽略的一个潜在期望. 在 ...
- element-ui NavMenu 导航菜单 通过一个按钮控制
element -ui 里导航菜单是通过两个按钮控制的,但实际开发中很多情况是通过一个按钮来toggle,而且有一个坑就是elemnt ui NavMenu的el-radio-butto 不是clic ...
- C#发送ZPL控制斑马Zebra打印机源码
1.最近想把斑马打印机集成到自己的C#程序里,找了好多资料,最后采用通过发送ZPL语言给打印机来完成打印这种方式,该程序可以创建.保存.调用ZPL模板,可以修改打印条码的参数并保存到模板里. 2.下面 ...
- html背景音乐停止按钮显示,JS 一个按钮控制网页背景音乐的开始暂停
满意答案 //播放器控制 var audio = document.getElementById('mp3Btn'); $('.audio_div').click(function(){ //防止冒泡 ...
- 一个按钮控制暂停和开始java_《第一炉香》|一个女人的自甘堕落,从控制不住欲望开始...
文|小野的世界 寻一壶铜香炉,点上一炉沉香屑. 泡上一壶茶,播放器里来一首单曲循环. 躺在午后的沙发上,阳光斜斜照进来,再捧上一本书. 最好是张爱玲的.受她影响,每次在拜读一本书的时候,总免不了几分仪 ...
- c#中用一个计时器控制小球撞壁运动
//添加命名空间 using System.Drawing.Drawing2D; namespace _20200409 {public partial class Form1 : Form{publ ...
- html制作自动切换音乐按钮代码,利用HTML5实现使用按钮控制背景音乐开关我
html 用开关控制背景音乐 可以用下面这个开关实现控制背景音乐吗?夜影驱动编程小编今天和大家分享指教,如果不行要怎么实现类似首先,jquery选择器那一行 $("#player .ge&q ...
最新文章
- _Linux和安卓之间可以传输文件吗?
- oracle form 滚动条,jQuery实现的自定义滚动条实例详解
- linux 好用的命令积累
- 一个springboot能支持多少并发_多少彩礼能娶一个西安女孩?
- 万事开头难!Python 初学者最容易犯的几个错误
- Ubuntu下面的Keras可视化+权重维度获取-Netron的安装使用
- 2019.6.16完成classstack任务
- EtherCAT 网站链接
- HEVC/H265 HM10.0 分析(三)TAppDecTop.cpp
- 观察者模式在android网络监控下的运用
- Earthquake
- 【TGRS】Ship Detection in Large-Scale SAR Images Via Spatial Shuffle-Group Enhance Attention译读笔记
- 翻译:您在Swift 5中的第一个UITest
- 关于被调函数形参:SqList L、SqList L、SqList *L 的区别
- 【BZOJ1001】狼抓兔子
- 矩形选框工具 部分快捷键练习
- gateway sentinel 熔断 不起作用_民熔小课堂|关于熔断器保险丝的知识扫盲!
- docker网络模式与资源控制
- 从古代文学到云端技术
- python中的*与**用法详解