[英]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.