斑马105SLPlus串口打印二维码

1.根据说明书调试硬件,校准介质还有色带(很重要),我自己搞了好几天才搞明白。

2.设置好参数,比如打印介质连续、非连续,热敏还是热转质

3.打印机上电后悔自动校准,校准成功后就可以直接通过串口打印,设置好通讯参数

4.主要代码

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace ZebraQRCode
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            serialPort1.Open();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            // 打印机的指令用“^”作为开头,任何打印指令都是从^XA开始,到^XZ结束
            if (string.IsNullOrEmpty(textBox1.Text)) return;
            StringBuilder strZPL = new StringBuilder();
            strZPL.Append("^XA");  // 开始指令
            strZPL.Append("^FO108,55");  // ^FOx,y x代表横坐标,y代表纵坐标

            /*
             * ^BQa,b,c
             * a代表二维码方向,默认是N
             * b代表二维码的版本,可选值有【1,2】,1是原始版本,2是增强版本,推荐用2,因为1扫不出来。
             * c代表二维码的放大程度,可选值【1-10】
             */
            strZPL.Append("^BQN,2,10");

            /*
             * ^FDab,cd^FS
             * a:错误纠正率,【H,Q,M,L】H是超高可靠度,L是高密度,建议使用H
             * b:数据输入模式,【A,M】A是自动模式(参数c可省略),M是手动模式(需要指定参数c的字符类型)
             * c:字符模式,【N】数字,【A】字符,【B】字节,【K】Kanji(日文汉字)
             * d:二维码的内容
             */
            strZPL.Append("^FDMM,A" + textBox1.Text + "^FS");
            strZPL.Append("^XZ");  // 结束指令

            serialPort1.Write(strZPL.ToString());
        }
    }
}

5.源码地址 https://github.com/LicwStack/ZebraQRCode

6. 有用的参考 https://blog.csdn.net/bfz_50/article/details/82468621, https://blog.csdn.net/weixin_38211198/article/details/95961605

posted @ 2019-09-25 10:08  Hello_2018  阅读(1087)  评论(2编辑  收藏  举报