Qt / C ++ - 生成的条形码不可读

时间:2015-12-17 17:22:51

标签: c++ c qt barcode

我在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手机上的条形码扫描仪应用程序无法读取生成的条形码。我在这种情况下做错了什么?

enter image description here

修改 纯文本需要一些编码。有关代码示例

,请参阅https://github.com/adamgiacomelli/Qt-barcode

1 个答案:

答案 0 :(得分:6)

除了要显示的字符串之外,Code 128还有一些要求。它需要一个开始字符,一个校验字符和一个停止字符。有关需要在字符串中插入开始和结束字符的字符,请参阅字体文档,并使用wikipedia作为校验码算法。