在C#中用一个按钮控制斑马zebra条码打印机进行打印

8 篇文章 0 订阅

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;                       //定义变量路径为Debug
            string 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 user
                        MessageBox.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 user
                        MessageBox.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简单控制打印机进行打印

  • 5
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论
你想了解如何使用C#编程控制斑马条码打印机打印ZPL格式的标签吗?如果是的话,你可以参考以下步骤: 1. 确保你的斑马条码打印机已连接到电脑,并且已正确安装驱动程序。 2. 下载并安装ZebraDesigner软件,该软件可用于创建ZPL格式的标签模板。 3. 在C#项目中添加Zebra.Printer.SDK.dll引用。 4. 在代码中创建一个ZebraPrinter对象。 5. 使用ZebraDesigner创建一个标签模板,并将其保存为ZPL格式的文件。 6. 在代码中打开该文件,并将其中的内容发送到打印机。 以下是一个简单的示例代码,用于打印一个包含文本和条码的标签: ``` using System; using System.IO; using Zebra.Printer.SDK; namespace ZPLPrinterDemo { class Program { static void Main(string[] args) { // 创建ZebraPrinter对象 ZebraPrinter printer = new ZebraPrinter(); // 打开标签模板文件 string filePath = @"C:\Labels\LabelTemplate.zpl"; string zplContent = File.ReadAllText(filePath); // 设置打印机参数 printer.ConnectionType = PrinterConnectionType.USB; printer.DeviceName = "Zebra TLP2844"; // 发送ZPL内容到打印机 printer.Send(zplContent); // 关闭打印机连接 printer.Disconnect(); } } } ``` 需要注意的是,上述代码中的Zebra.Printer.SDK.dll引用需要从Zebra官网下载,而且该示例假设你的打印机已经连接到电脑并正确安装了驱动程序。如果你的打印机连接方式不同,需要相应地修改打印机参数。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

CWM6364

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值