[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 分钟前
Kotlin函数由易到难
开发语言·python·kotlin
姑苏风7 分钟前
《Kotlin实战》-附录
android·开发语言·kotlin
奋斗的小花生1 小时前
c++ 多态性
开发语言·c++
魔道不误砍柴功1 小时前
Java 中如何巧妙应用 Function 让方法复用性更强
java·开发语言·python
NiNg_1_2341 小时前
SpringBoot整合SpringSecurity实现密码加密解密、登录认证退出功能
java·spring boot·后端
闲晨1 小时前
C++ 继承:代码传承的魔法棒,开启奇幻编程之旅
java·c语言·开发语言·c++·经验分享
老猿讲编程2 小时前
一个例子来说明Ada语言的实时性支持
开发语言·ada
Chrikk3 小时前
Go-性能调优实战案例
开发语言·后端·golang
幼儿园老大*3 小时前
Go的环境搭建以及GoLand安装教程
开发语言·经验分享·后端·golang·go
canyuemanyue3 小时前
go语言连续监控事件并回调处理
开发语言·后端·golang