2015-07-11 133 views
2

我與應用發明者2使用zxing。如果我編碼一個6位數字到ITF條碼zxing android掃描儀工作正常。但是,如果我創建2位或4位ITF條形碼,條形碼會更短,並且不會掃描。 對於我的應用程序,我更喜歡條碼越短越好。 請幫忙 謝謝 大衛ITF條碼zxing掃描儀問題

回答

0

ITF沒有必要的校驗和,所以它是有問題的,讓它掃描非常短的ITF代碼。它很可能會將它們視爲非條碼圖像中的幻像讀取。接受的最小ITF長度爲6個字符。你可以重寫這個,但是如果你這樣做,你需要使用校驗和並在你的代碼中進行驗證。這可能不是格式的一個很好的選擇。

+0

感謝您的回覆,我猜我必須潛入源代碼,我沒有經歷過的事情(我與應用程序發明者合作),但我會嘗試解決它 – davey

0

正如肖恩已經回答的那樣,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條形碼的功能,並將此自定義生成集成到您的應用中。