537*_*037 3 java barcode scanning barcode-scanner
我创建了一个生成条形码的应用程序。
这是我如何创建条形码的代码:
Code39 code39 = new Code39();
String outputStr = code39.encode("B00009", 1);
//String humanTextStr=code39.getHumanText();
lblBarcode.setText(outputStr);
lblBarcode.setFont(new java.awt.Font("CCode39_S3_Trial",java.awt.Font.PLAIN,14));
Run Code Online (Sandbox Code Playgroud)
使用这个 java 库ConnectCodeBarcodeFontLibrary.jar。
为了扫描条形码,我使用了QRbot应用程序,它为我提供了此信息 - 末尾的额外字母B00009K而不是这个B00009。
这是生成的条形码的屏幕截图:
在这种情况下有什么问题,有人遇到过这个问题吗?请帮我!
Code 39 可以选择使用校验位,称为 Code 39 mod 43。Code
39 mod 43 - 维基百科
例如,中兴的Code39Reader有一个选项叫ASSUME_CODE_39_CHECK_DIGIT(一种即使没有校验位,也会从条码数据中生成校验位并通知的模式?)。
类 Code39Reader
Run Code Online (Sandbox Code Playgroud)public Result decodeRow(int rowNumber, BitArray row, Map<DecodeHintType,?> hints) throws NotFoundException, ChecksumException, FormatException
public static final DecodeHintType ASSUME_CODE_39_CHECK_DIGIT
假设 Code 39 代码使用校验位。它映射到什么并不重要;使用 Boolean.TRUE。
您的程序是否在生成条码时添加了校验位(但没有以人类可读的字符打印),或者读取条码的程序是否补充了校验位并生成/通知了它。可以有两种可能性之一。
顺便说一下,K当使用 Honeywell Xenon 1900 在默认的无校验字符模式下读取呈现的条码时,最后一个会收到通知,因此在程序中生成条码时可能已添加校验位。会高。
| 归档时间: |
|
| 查看次数: |
241 次 |
| 最近记录: |