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条码打印机进行打印相关推荐

  1. flash一个按钮控制动画_PLC三组灯用一个按钮控制

    今天作一个PLC小练习 用一个按钮控制三组或三个灯,以达到控制灯的亮度,由PLC组成一个控制器,每按一次按钮增加一组灯亮,三组灯全亮后,每按一次按钮,灭一组灯(为了使每组灯亮的时间尽量相等,要求先亮的 ...

  2. js实现在页面实时显示时间,一个按钮控制时间暂停和开始

    js实现在html实时显示时间,一个按钮控制时间暂停和开始.代码如下: <head><meta charset="UTF-8"><title>& ...

  3. 一个按钮控制灯的开关

    一个按钮控制灯的开关 可以通过Simulator进行模拟展示

  4. flash一个按钮控制动画_flutter闪屏过渡动画,闪光占位动画

    在程序设计的理念中,讲究一切都来源于物理世界,在现实世界中,人们在每接触到一个新的事物或者说在手指触碰到一个事物时,总是心里默许期望有一个反馈效果,这就是来源于心底深处常常被人忽略的一个潜在期望. 在 ...

  5. element-ui NavMenu 导航菜单 通过一个按钮控制

    element -ui 里导航菜单是通过两个按钮控制的,但实际开发中很多情况是通过一个按钮来toggle,而且有一个坑就是elemnt ui NavMenu的el-radio-butto 不是clic ...

  6. C#发送ZPL控制斑马Zebra打印机源码

    1.最近想把斑马打印机集成到自己的C#程序里,找了好多资料,最后采用通过发送ZPL语言给打印机来完成打印这种方式,该程序可以创建.保存.调用ZPL模板,可以修改打印条码的参数并保存到模板里. 2.下面 ...

  7. html背景音乐停止按钮显示,JS 一个按钮控制网页背景音乐的开始暂停

    满意答案 //播放器控制 var audio = document.getElementById('mp3Btn'); $('.audio_div').click(function(){ //防止冒泡 ...

  8. 一个按钮控制暂停和开始java_《第一炉香》|一个女人的自甘堕落,从控制不住欲望开始...

    文|小野的世界 寻一壶铜香炉,点上一炉沉香屑. 泡上一壶茶,播放器里来一首单曲循环. 躺在午后的沙发上,阳光斜斜照进来,再捧上一本书. 最好是张爱玲的.受她影响,每次在拜读一本书的时候,总免不了几分仪 ...

  9. c#中用一个计时器控制小球撞壁运动

    //添加命名空间 using System.Drawing.Drawing2D; namespace _20200409 {public partial class Form1 : Form{publ ...

  10. html制作自动切换音乐按钮代码,利用HTML5实现使用按钮控制背景音乐开关我

    html 用开关控制背景音乐 可以用下面这个开关实现控制背景音乐吗?夜影驱动编程小编今天和大家分享指教,如果不行要怎么实现类似首先,jquery选择器那一行 $("#player .ge&q ...

最新文章

  1. _Linux和安卓之间可以传输文件吗?
  2. oracle form 滚动条,jQuery实现的自定义滚动条实例详解
  3. linux 好用的命令积累
  4. 一个springboot能支持多少并发_多少彩礼能娶一个西安女孩?
  5. 万事开头难!Python 初学者最容易犯的几个错误
  6. Ubuntu下面的Keras可视化+权重维度获取-Netron的安装使用
  7. 2019.6.16完成classstack任务
  8. EtherCAT 网站链接
  9. HEVC/H265 HM10.0 分析(三)TAppDecTop.cpp
  10. 观察者模式在android网络监控下的运用
  11. Earthquake
  12. 【TGRS】Ship Detection in Large-Scale SAR Images Via Spatial Shuffle-Group Enhance Attention译读笔记
  13. 翻译:您在Swift 5中的第一个UITest
  14. 关于被调函数形参:SqList L、SqList L、SqList *L 的区别
  15. 【BZOJ1001】狼抓兔子
  16. 矩形选框工具 部分快捷键练习
  17. gateway sentinel 熔断 不起作用_民熔小课堂|关于熔断器保险丝的知识扫盲!
  18. docker网络模式与资源控制
  19. 从古代文学到云端技术
  20. python中的*与**用法详解

热门文章

  1. 51单片机c语言开发工具keil安装
  2. sql中concat函数_SQL中的CONCAT函数概述和示例
  3. python中math isnan_带有Python示例的math.isnan()方法
  4. win10+可道云+xampp+ipv6搭建可外网访问私人网盘
  5. Nutch简介(转3)
  6. C语言课程设计 简单的单词学习系统
  7. 计算机网络体系结构与数据通信(一) 概述
  8. 常用实用网站整理大全
  9. ODIN SNN处理器
  10. 什么是Apple Pay?