[英]Barcode4j - Generate check digit in an EAN13 barcode
当您使用 Barcode4j 作为图像生成条形码时,您也可以获得人类可读的文本,例如:
在这张图片中我们可以看到人类可读的文本是: 1000000012026
在此示例中,已使用代码100000001202生成条形码,数字6是 Barcode4j 生成器添加的校验位。
所以,我的问题是:是否可以使用 Barcode4j 获得 EAN13 生成的条形码的校验位? 因为我知道如何将其渲染为图像,但我不知道如何获取人类可读的文本,即纯文本。
问候,
米格尔。
感谢 Barcode4j 插件,您可以使用所需的条形码格式计算校验和。 在 Java 7 中,您可以这样计算校验和:
private String calculateCodeWithcheckSum(String codigo){
EAN13Bean generator = new EAN13Bean();
UPCEANLogicImpl impl = generator.createLogicImpl();
codigo += impl.calcChecksum(codigo);
return codigo;
}
首先,您需要EAN13
条形码格式,因此您可以获得插件提供的 class,并调用其唯一方法: createLogicImpl()
。
此方法用于为您提供 UPCEANLogicImpl 类型的UPCEANLogicImpl
。 这是您需要的 class,因为您可以在其中找到计算 checkSum 的方法。 因此,您只需要调用方法 calcChecksum 并给出您的代码( 100000001202 ),然后就会给出 checkSum 值( 6 )。
您可以在下一个 web 中查看它: http://www.gs1.org/check-digit-calculator
添加您的代码和 checkSum 值将为您提供所需的值( 1000000012026 )
如果您在不导入 java 库的情况下计算校验位,代码如下:
public static String ean13CheckDigit(String barcode) {
int s = 0;
for (int i = 0; i < 12; i++) {
int c = Character.getNumericValue(barcode.charAt(i));
s += c * ( i%2 == 0? 1: 3);
}
s = (10 - s % 10) % 10;
barcode += s;
return barcode;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.