条形码128 - 3位字符串条形码宽度大于4位数字符串条形码

时间:2015-12-10 06:49:22

标签: java itext barcode

我尝试生成要放在标签上的Barcode128条形码,通常标签宽度较小。我想知道3 digit(100)字符串条形码宽度大于4 digit(1001)字符串条形码。 3 digit barcode应该小于4位数的条形码吗?我已经验证在线条形码生成3 digit barcode宽度小于4位数条形码宽度,其中iText api比3 digit字符串与4 digit string相比更宽。

请有人告诉我们这个原因以及如何制作3 digit barcode shorter than the 4 digit barcode?

在线条形码生成器网址here

3 digit barcode and 4 digit barcode with iText API

用于生成条形码的代码示例。

Barcode128 code128 = new Barcode128();
    code128.setCode(myText);
    Image myBarCodeImage128 = code128.createImageWithBarcode(contentByte,
        null, null);

然后将图像添加到pdf文档中。

2 个答案:

答案 0 :(得分:5)

条形码128有几种编码数字的方法。其中一种方法是在同一符号中编码2位数。在4位数字的情况下,您有两个符号,每个符号有两个数字,总共两个符号。在3位数字的情况下,您有一个两位数的符号,一个用于切换到字母数字的符号和一个用于最后一个数字的符号,总共有三个符号。正如您所看到的,在这种情况下,更少的是更多。

答案 1 :(得分:1)

根据Paulo Soares的回答找到一个工作片段。

Document document = new Document(new Rectangle(340, 842));
PdfWriter writer = PdfWriter.getInstance(document, 
    new FileOutputStream("barcodes.pdf"));
document.open();
PdfContentByte cb = writer.getDirectContent();

document.add(new Paragraph("Barcode 128 demo"));

Barcode128 code128 = new Barcode128();
code128.setCode("100");
code128.setCodeSet(Barcode128CodeSet.B);
document.add(code128.createImageWithBarcode(cb, null, null));

code128 = new Barcode128();
code128.setCode("1001");
code128.setCodeSet(Barcode128CodeSet.B);
document.add(code128.createImageWithBarcode(cb, null, null));
document.close();