热敏打印机长文本自动换行打断单词问题记录

 1 void PrinterCtl::writeMyCom(QByteArray data)
 2 {
 3     int l = 0;
 4     for(int i = MaxLength; i < data.size() - 1; i += MaxLength){
 5         if(qAbs(data.indexOf(' ', i-1) - i) > 1){
 6             l = data.lastIndexOf(' ',i);
 7             if(l != -1 && l > i - MaxLength){
 8                 data.insert(l, QString("%1").arg("", i-l-1, QLatin1Char(' ')));
 9             }
10         }
11     }
12     myCom->write(data);
13 }

QT串口实现,没找到现成的记录一下,大概思路就是检查行末不是空格且不是文本结尾时,找本行最后一个空格延长,把本来这行的半个单词推到下一行

posted @ 2023-02-01 10:47  KKKKA  阅读(58)  评论(0编辑  收藏  举报