簡體   English   中英

使用Barcode4j為多組AI和數據生成EAN128代碼的問題

[英]Issue with generating EAN128 code using Barcode4j for multiple sets of AI and data

我正在使用barcode4j生成EAN128條形碼。 我需要生成的條形碼包含多組應用程序標識符和數據,例如:

(410)000061000034(412)000001101593

410412的數據長度為13 characters 我正在使用添加校驗和模式,因此您可以在上面的示例中看到我只打算提供12個字符作為每個AI的數據,並且期望校驗和數字將被計算並自動附加。

但是,通過使用下面的代碼,它不會為我生成正確的代碼:

    dpi = 200;
    // barcode
    objEAN128Bean.setModuleWidth(0.21);
    objEAN128Bean.setHeight(15);
    // objEAN128Bean.setWideFactor(3);
    objEAN128Bean.doQuietZone(true);
    objEAN128Bean.setQuietZone(2);
    // human-readable
    objEAN128Bean.setFontName("Helvetica");
    objEAN128Bean.setFontSize(3);
    // checksum
    objEAN128Bean.setChecksumMode(objCheckSum.CP_ADD);
    BitmapCanvasProvider canvas = new BitmapCanvasProvider(out,
                "image/jpeg", dpi, BufferedImage.TYPE_BYTE_BINARY, true, 0);
    objEAN128Bean.generateBarcode(canvas, "410000061000034412000001101593");
    canvas.finish();

看起來barcode4j不知道第一AI (410)的數據在何處結束,因此不能正確識別第二組AI和數據。

我發現有一種方法可以通過使用指定類似的XML方法來實現:

<template>(410)n12+cd1(412)n12+cd1</template>

我只是想知道是否有人通過使用Java bean方法知道解決方案?

任何幫助和光線將非常感謝!

也許這個答案為時已晚,但我只是通過將模板添加到objEAN128Bean來解決它:

objEAN128Bean.setTemplate("(415)n13+(8020)n18+(3902)n10+cd");

它會正確綁定字符串。

我不知道它是否與您相關,但在Jasper報告的barcode4j組件中,您可以使用字符啟動一個新的應用程序標識符。

"97XXX\u00f1916213514687"

它會給你一個像這樣的條形碼

(97) XXX (91) 6213514687

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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