我在Qt5/C++(Windows)中编写了一个简单的条形码生成器:
void BarcodeDialog::printBarcode(QString barcodeText) { int id = QFontDatabase::addApplicationFont(":/fonts/code128.ttf"); QFontDatabase::applicationFontFamilies(id).at(0); QFont barcodefont = QFont("Code 128", 50, QFont::Normal); barcodefont.setLetterSpacing(QFont::AbsoluteSpacing,0.0); this->ui->label->setFont(barcodefont); this->ui->label->setText(barcodeText); }
它生成条形码,但我的Android手机上的条形码扫描仪应用程序无法读取生成的条形码.我在这种情况下做错了什么?
编辑: 纯文本需要一些编码.有关代码示例,请参阅https://github.com/adamgiacomelli/Qt-barcode
除了要显示的字符串之外,Code 128还有一些要求.它需要一个开始字符,一个校验字符和一个停止字符.请参阅字体文档,了解需要在字符串中插入开始和停止字符的字符,以及维基百科的校验码算法.