我尝试在独立的Java应用程序中使用BBQ条形码生成器,并且能够打印具有条形码编号的条形码,如图所示。
但是,当我从Spring Web应用程序执行相同的方法时,生成的条形码未显示下图所示的条形码编号。我正在使用相同的文件路径来保存图像,并对目录具有完全的读写权限。您对此有任何线索吗,谢谢
我正在使用下面的代码片段
barcode = BarcodeFactory.createCode128A(barcode_Id);
File f = new File("/opt/rd/barcode/"+barcode_Id+".png");
BarcodeImageHandler.savePNG(barcode, f);
最佳答案
我已经在Grails中为条形码设置字体并覆盖Barcode中的computeSize()方法,解决了此问题:
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中的This thread可以进一步阐明该问题。