ITF条形码zxing扫描程序问题

时间:2015-07-11 13:03:57

标签: android barcode zxing

我正在使用zxing和App发明者2.如果我将一个6位数字编码成一个ITF条形码,那么zxing android扫描仪工作正常。但是,如果我创建2或4位数的ITF条形码,条形码会更短并且不会扫描。 对于我的应用程序,我更喜欢条形码尽可能短。 请帮忙 谢谢 大卫

2 个答案:

答案 0 :(得分:0)

ITF没有必要的校验和,因此允许它扫描非常短的ITF代码是有问题的。它很可能将它们视为非条形码图像中的幻像读取。接受的最小ITF长度为6个字符。您可以覆盖它,但如果这样做,则需要使用校验和并在代码中对其进行验证。它可能不是格式的绝佳选择。

答案 1 :(得分:0)

正如Sean已经回答的那样,ITF格式没有校验和,因此ZXing的作者决定支持最少6个字符的条形码,以避免高“误报”率,即在较长的条码内检测到较短条码的情况。

您可以从ZXing source code清楚地看到。允许的最小长度为6。

作者还建议您在ITF条形码中添加校验和字符,以便对获得的结果更有信心。

这是针对您的案例的最佳解决方案:在您生成条形码的一侧,添加额外的2个字符作为校验位,以获得6位数值。生成校验位的最佳方法是使用MOD-97-10 ISO 7064 standard,这通常用于保护IBAN numbers。 ZXing的ITF扫描仪可以很好地处理6个字符的条形码,您还可以验证获得的校验位数,以便对结果更有信心。

如果这不适用于您的情况,您可以编辑上面链接的ZXing源代码,添加扫描长度为2和4的ITF条形码的功能,并将此自定义版本集成到您的应用中。