[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,并注意编码格式,否则会出现中文乱码情况。

相关推荐
linux修理工几秒前
下载亚马逊Corretto 17的方法(OpenJDK 17发行版)
java·运维·服务器
guygg8813 分钟前
基于ADMM的MRI-PET高质量图像重建算法MATLAB实现
开发语言·算法·matlab
小小程序员mono14 分钟前
JS 与 Vue Router 导航方式对比
开发语言·javascript·vue.js
moonlight030416 分钟前
类加载子系统
java·jvm·算法
feifeigo12316 分钟前
基于MATLAB的V-BLAST结构BER仿真
开发语言·matlab
lly20240624 分钟前
Perl 数据库连接
开发语言
小白-Tester26 分钟前
2026最新Postman安装教程[简单易懂]附安装包
开发语言·lua
xiaoye370827 分钟前
某大厂java面试题一面20260313
java
啦啦啦_999939 分钟前
13. AI面试题之 Dify
java
春日见40 分钟前
端到端大模型自动驾驶
java·开发语言·驱动开发·docker·自动驾驶·计算机外设