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

相关推荐
遇见你的雩风7 分钟前
【Golang】--- Channel
开发语言·golang
zlpzpl17 分钟前
Java总结进阶之路 (基础二 )
java·开发语言·python
xyq202425 分钟前
Chart.js 折线图深入解析与使用指南
开发语言
Evand J29 分钟前
【UWB与IMU紧耦合定位,MATLAB例程】UWB的TOA定位方法,与IMU紧耦合,对目标轨迹定位并输出误差统计。适用于二维平面的高精度定位导航
开发语言·matlab·平面·uwb·组合导航
Tony Bai34 分钟前
Go 1.26 中值得关注的几个变化:从 new(expr) 真香落地、极致性能到智能工具链
开发语言·后端·golang
焦糖夹心34 分钟前
python中,怎么同时输出字典的键和值?
开发语言·python
only-lucky36 分钟前
Qt惯性动画效果
开发语言·qt
冬夜戏雪37 分钟前
线性池java demo
java·开发语言
追随者永远是胜利者42 分钟前
(LeetCode-Hot100)5. 最长回文子串
java·算法·leetcode·职场和发展·go
强子感冒了43 分钟前
JavaScript 零基础入门笔记:核心概念与语法详解
开发语言·javascript·笔记