C#通过Com串口进行Barcode Printer


前言

工作中有遇到Barcode打印的需求,最开始是通过打印机型号找到对应的打印机,再进行操作,但是需要匹配的打印机型号太多,而且不定,所以处理起来太过麻烦。

后面通过找到通过串口找到打印机,直接传输命令的方式操控打印机。

(经测试,Zebra和TSC两种类型的打印机均可打印成功)

一、简单了解打印机ZPL命令

 二、ZPL命令测试地址

http://labelary.com/viewer.html

三、连接串口Com的通信方式

1、导包

using System.IO.Ports;

2、打印代码

private void Print()
{
    SerialPort serialPort = new SerialPort();//创建串口实例
    serialPort.PortName = "COM1";//串口名称
    try
    {
        serialPort.Open();//打开串口
    }
    catch (Exception ex)
    {
        MessageBox.Show(ex.Message);//将异常信息传递给用户
        return;
    }  
    string serialString = "^XA";//开始
    serialString = serialString + "^LH0,0^FS";//偏移量
    serialString = serialString + "^FO32,10^ABN,9,5^FD" + "First Line" + "^FS";//32,10即开始位置(x,y); ABN即字体大小,AAN
    serialString = serialString + "^FO50,25^BY2,3,50^BE,,,^FD" + "Barcoed12345" + "^FS";
    serialString = serialString + "^FO45,96^AAN,9,5^FD" + "Third Line" + "^FS";
    serialString = serialString + "^PQ1";
    serialString = serialString + "^XZ";//结束
    serialPort.Write(serialString);
    //serialPort.WriteLine(serialString);//也可以一行一行地打印,效果一样
    serialPort.Close(); //Close specified printer driver
}

另外:

USB等其他接口此方式是否可以通过这种方式打印没有测试,但也有测试成功的USB打印方式,需要使用到TSCLib.dll,后期再补一份使用TSCLib.dll的打印blog。