簡體   English   中英

Barcode4j - 在 EAN13 條形碼中生成校驗位

[英]Barcode4j - Generate check digit in an EAN13 barcode

當您使用 Barcode4j 作為圖像生成條形碼時,您也可以獲得人類可讀的文本,例如:

EAN13 條碼示例

在這張圖片中我們可以看到人類可讀的文本是: 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM