3

我正在使用barcode4j 生成EAN128 条形码。我需要生成的条形码包含多组应用程序标识符和数据,例如:

(410)000061000034(412)000001101593

410和的数据长度41213 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 方法的解决方案?

任何帮助和启示将不胜感激!

4

2 回答 2

2

也许这个答案为时已晚,但我只是通过将模板添加到objEAN128Bean来解决它:

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

它将正确绑定字符串。

于 2017-03-24T10:53:36.330 回答
1

我不知道它是否与您相关,但在 Jasper 报告的barcode4j 组件中,您可以使用该\u00f1字符启动一个新的应用程序标识符。

"97XXX\u00f1916213514687"

它会给你一个条形码,比如

(97) XXX (91) 6213514687
于 2016-04-20T09:39:49.397 回答