2

我在一个独立的 Java 应用程序中尝试使用烧烤条码生成器,并且能够打印带有图像中显示的条码编号的条码。

在此处输入图像描述

但是当我从 Spring Web 应用程序执行相同的方法时,生成的条码不显示条码编号,如下图所示。我使用相同的文件路径来保存图像并对目录具有完整的 rw 权限。你有这方面的线索吗,谢谢

在此处输入图像描述

我正在使用下面的代码片段

barcode = BarcodeFactory.createCode128A(barcode_Id);
File f = new File("/opt/rd/barcode/"+barcode_Id+".png");
BarcodeImageHandler.savePNG(barcode, f);
4

1 回答 1

0

我已经在 Grails 中解决了这个问题,为我的条形码设置字体并覆盖Barcode中的calculateSize()方法:

private Dimension calculateSize(){
    Dimension d = new Dimension();
    if(EnvironmentFactory.getEnvironment() instanceof HeadlessEnvironment)
    try
    {

        if(font == null)
        {
            d = draw(new SizingOutput(font, getForeground(), getBackground()), 0, 0, barWidth, barHeight);
        } else
        {
            java.awt.FontMetrics fontMetrics = getFontMetrics(font);
            d = draw(new SizingOutput(font, fontMetrics, getForeground(), getBackground()), 0, 0, barWidth, barHeight);
        }
    }
    catch(OutputException e)
    {
        e.printStackTrace();
    }
    else
    try
    {
        java.awt.FontMetrics fontMetrics = null;
        if(font != null)
        fontMetrics = getFontMetrics(font);
        d = draw(new SizingOutput(font, fontMetrics, getForeground(), getBackground()), 0, 0, barWidth, barHeight);
    }
    catch(OutputException e) { }
    return d;
}

sourceforge 中的这个线程可以更清楚地说明这个问题。

于 2013-05-24T21:09:27.283 回答