ITF条码zxing扫描仪问题

问题描述:

我与应用发明者2使用zxing。如果我编码一个6位数字到ITF条码zxing android扫描仪工作正常。但是,如果我创建2位或4位ITF条形码,条形码会更短,并且不会扫描。 对于我的应用程序,我更喜欢条码越短越好。 请帮忙 谢谢 大卫ITF条码zxing扫描仪问题

ITF没有必要的校验和,所以它是有问题的,让它扫描非常短的ITF代码。它很可能会将它们视为非条码图像中的幻像读取。接受的最小ITF长度为6个字符。你可以重写这个,但是如果你这样做,你需要使用校验和并在你的代码中进行验证。这可能不是格式的一个很好的选择。

+0

感谢您的回复,我猜我必须潜入源代码,我没有经历过的事情(我与应用程序发明者合作),但我会尝试解决它 – davey

正如肖恩已经回答的那样,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条形码的功能,并将此自定义生成集成到您的应用中。