使用 Barcode4j 为多组 AI 和数据生成 EAN128 代码的问题
Issue with generating EAN128 code using Barcode4j for multiple sets of AI and data
我正在使用 barcode4j 生成 EAN128 条码。
我需要生成的条码包含多组Application Identifiers和数据,例如:
(410)000061000034(412)000001101593
410
和 412
的数据长度都是 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 方法的解决方案?
任何帮助和启发将不胜感激!
我不知道它是否与您相关,但在 Jasper 报告的 barcode4j 组件中,您可以使用 \u00f1
字符开始一个新的应用程序标识符。
"97XXX\u00f1916213514687"
它会给你一个像
这样的条形码
(97) XXX (91) 6213514687
也许现在回答这个问题为时已晚,但我只是通过将模板添加到 objEAN128Bean:
中解决了这个问题
objEAN128Bean.setTemplate("(415)n13+(8020)n18+(3902)n10+cd");
它会正确绑定字符串。
我正在使用 barcode4j 生成 EAN128 条码。 我需要生成的条码包含多组Application Identifiers和数据,例如:
(410)000061000034(412)000001101593
410
和 412
的数据长度都是 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 方法的解决方案?
任何帮助和启发将不胜感激!
我不知道它是否与您相关,但在 Jasper 报告的 barcode4j 组件中,您可以使用 \u00f1
字符开始一个新的应用程序标识符。
"97XXX\u00f1916213514687"
它会给你一个像
这样的条形码(97) XXX (91) 6213514687
也许现在回答这个问题为时已晚,但我只是通过将模板添加到 objEAN128Bean:
中解决了这个问题objEAN128Bean.setTemplate("(415)n13+(8020)n18+(3902)n10+cd");
它会正确绑定字符串。