[Qt项目实战]Qt实现美松标签打印机标签二维码打印(QR混排模式+页打印模式)

1、硬件信息、环境参数及配套资料

1.1 打印机信息及开发环境

  • 打印机 美松标签打印机
  • 串口/USB通讯
  • Qt5.9 64位程序

1.2 打印机配套开发资料

打印机主要配套测试工具、开发SDK及驱动等,均由厂家提供。

2、QR码混排打印模式

QR码混排打印,就是打印QR码,再打印字符文本,然后再设置是否环绕。其中QR码打印函数中可以设置二维码大小,距离左边距尺寸,以及设置是否环绕。

复制代码
    SetBold(1);
    QByteArray string;
    //第一行预留10dot(1dot=0.125mm)
    PrintFeedDot(10);
    PrintQrcode("1123469-033",3,6,1);
    SetLeftmargin(160);

    QString ProductIDStr = "单号:1123469-033";
    string = ProductIDStr.toLocal8Bit();
    char *c_ProductIDStr = string.data();
    qDebug()<<"c_ProductIDStr"<<c_ProductIDStr;
    PrintString(c_ProductIDStr,0);
    QString length = "长度:2555";
    string = length.toLocal8Bit();
    char *c_length = string.data();
    PrintString(c_length,0);
    PrintString("上固定框",0);
    PrintString("型材编号:HNPC109-01",0);
    PrintString("型材名称:109外框",0);
    int r = PrintRemainQR();
    //清空设置
    SetClean();
    //设置距离左边距20dot
    SetLeftmargin(20);
    PrintString("A法式香槟色B氟碳灰色",0);
    PrintString("海南三亚旗舰店-陆涛",0);
    PrintString("静雅系列断桥-平框-系列窗纱一体平开窗(外开玻璃+内开纱窗)",0);

    //进纸到切纸位置
    PrintMarkpositioncut();

3、页打印模式

复制代码
    //清理缓存,清除之前设置的参数
    SetClean();   
    //进入页模式,并设置页面大小,50mm宽,高25mm
    SetPagemode(1, 400, 200);
    //设置页模式数据打印起始位置坐标
    SetPagestartposition(80, 16);
    m_sbData = new StringBuilder("1123469-033");
    PrintString(m_sbData, 0);

    SetPagestartposition(320, 16);
    m_sbData = new StringBuilder("上固定框");
    PrintString(m_sbData, 0);
    
    SetPagestartposition(8, 40);
    StringBuilder bar_data = new StringBuilder("a20181226");
    Print1Dbar(2, 100, 1, 0, 10, bar_data);
    
    SetPagestartposition(340, 64);
    m_sbData = new StringBuilder("型材编号:HNPC109-01");
    PrintString(m_sbData, 0);
    
    SetPagestartposition(340, 100);
    m_sbData = new StringBuilder("型材名称:109外框");
    PrintString(m_sbData, 0);
    
    SetPagestartposition(56, 140);
    m_sbData = new StringBuilder("A法式香槟色B氟碳灰色");
    PrintString(m_sbData, 0);

    //设置页模式数据打印起始位置坐标
    SetPagestartposition(8, 170);
    m_sbData = new StringBuilder("海南三亚旗舰店-陆涛");
    PrintString(m_sbData, 0);

    PrintPagedata();//
    //退出页模式
    SetPagemode(0, 400, 200);
    //黑标(不干胶)模式下检测黑标(不干胶缝隙)并进纸到切纸位置
    PrintMarkpositioncut();

4、总结

  • 如果使用USB接口,需要在电脑上安装美松打印机的驱动程序,否则会出现初始化失败的错误。

  • QR码混排打印时,最好是将QR码打印在左侧,因为打印QR码设置距离左边距最大值为27mm。

  • 美松打印机目前字体大小:字符是1224和9 17,汉字是1616和2424,放大只能按照倍数放大,比较难去调整到一个合适的字体大小,一般使用默认大小。

  • 美松提供的是纯C的动态库,输入的字符串是char类型,所以在Qt调用时需要将QString先转成char,并注意编码格式,否则会出现中文乱码情况。

相关推荐
好好沉淀3 小时前
Apache 工具包(commons-io commons-lang3 )保姆介绍
java·ide
毕设源码-邱学长3 小时前
【开题答辩全过程】以 服装购物平台为例,包含答辩的问题和答案
java·eclipse
无敌最俊朗@4 小时前
C++后端总览
开发语言
多喝开水少熬夜4 小时前
堆相关算法题基础-java实现
java·开发语言·算法
richxu202510014 小时前
Java开发环境搭建之 10.使用IDEA创建和管理Mysql数据库
java·ide·intellij-idea
7澄14 小时前
Java 集合框架:List 体系与实现类深度解析
java·开发语言·vector·intellij-idea·集合·arraylist·linkedlist
行思理4 小时前
IntelliJIdea 工具新手操作技巧
java·spring·intellijidea
mit6.8244 小时前
一些C++的学习资料备忘
开发语言·c++
Industio_触觉智能4 小时前
开源鸿蒙SIG-Qt技术沙龙成都站成功举办,产品方案展示
qt·harmonyos·openharmony·开源鸿蒙·sig-qt
Adellle4 小时前
Java中同步和异步的区别,以及阻塞和非阻塞的区别
java·开发语言