如何使用interleaved2of5创建条形码图像而不显示其文本

时间:2014-04-03 18:17:31

标签: java itext

我正在使用itext pdf jar使用inter2of5生成条形码图像。

如何仅显示条形码图像而不显示文本(条形码值)?

下面的方法显示带有条形码下方文字的图像。请指出

//Creates Audit barcode image without the message(barcode number).
        BarcodeInter25 audBarcode = new BarcodeInter25();
        audBarcode.setCode(123456789);

        Color black = new Color(0, 0, 0);
        Color white = new Color(255, 255, 255);
        Image audBarcodeImg = Image.getInstance(audBarcode.createImageWithBarcode(cb, null, null));
        audBarcodeImg.setRotationDegrees(-90);
        audBarcodeImg.setAbsolutePosition(18, 410);
        samplePdfDoc.add(123456789);
        audBarcode.setStartStopText(false);    

1 个答案:

答案 0 :(得分:1)

前两个观察结果:

  1. 您没有复制/粘贴编译的代码。例如:setCode()需要String而不是int。您永远不会将条形码添加到samplePdfDoc,也无法将int添加到samplePdfDoc ...
  2. 您使用的是过时的iText版本。这是一个坏主意。有关详细信息,请参阅http://itextpdf.com/salesfaq
  3. 现在解决方案:如我book中所述,您可以通过将字体设置为null来删除文本。我已经把你的代码变成了更有意义的东西:

    Document document = new Document();
    PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream(filename));
    document.open();
    PdfContentByte cb = writer.getDirectContent();
    BarcodeInter25 audBarcode = new BarcodeInter25();
    audBarcode.setCode("0123456789");
    audBarcode.setStartStopText(false); 
    audBarcode.setFont(null);
    Image audBarcodeImg = Image.getInstance(audBarcode.createImageWithBarcode(cb, null, null));
    audBarcodeImg.setRotationDegrees(-90);
    audBarcodeImg.setAbsolutePosition(18, 410);
    document.add(audBarcodeImg);
    document.close();
    

    现在代码编译,执行并显示没有文本的条形码。请考虑阅读文档,更重要的是:请升级到最新的iText版本,因为您使用的是几年前宣布死亡的版本。