如何重新调整Barbecue API生成的文本大小?

时间:2012-10-08 05:45:48

标签: java resize barcode barbecue

我正在尝试使用Barbecue API生成条形码。我面临的问题是,当我尝试重新调整条形码的大小时,打印在条形码下方的文本形式的代码保持相同的大小。我也需要减少它的一面。我尝试了以下代码:

第1部分:原始尺寸条形码

Barcode b = BarcodeFactory.create2of7("4561");
b.setBarHeight(5);
b.setBarWidth(1);
PrinterJob job = PrinterJob.getPrinterJob();
job.setPrintable(b);
if (job.printDialog())
{
        job.print();
}

第2部分:调整大小的代码

Barcode b = BarcodeFactory.create2of7("4561");
b.setBarHeight(5);
b.setBarWidth(1);
PrinterJob job = PrinterJob.getPrinterJob();
job.setPrintable(b);
if (job.printDialog())
{
job.print();
}

下面是条形码的输出图像:

Output of both the parts

正如您所看到的,代码大小相同。我怎样才能减小它的尺寸?请帮帮我。

感谢。

5 个答案:

答案 0 :(得分:1)

条形码b;

b.setFont(空);

这有助于您将字体大小设置为0。

答案 1 :(得分:0)

如果BarCodeBuilder使用课程Barcode 就像

  BarCodeBuilder b=new BarCodeBuilder();
  b.setCodeText("abc123");
  b.setSymbologyType(Symbology.Codabar);
  b.setResolution(new Resolution(50f,40f,ResolutionMode.Graphics));

对我有用......

答案 2 :(得分:0)

我想,您应该使用Barcode.setFont()方法来设置字体大小

reference

答案 3 :(得分:0)

由于 net.sourceforge.barbecue.Barcode 的getFont()返回一个好的旧null,你要么必须构造一个 Font 对象,要么从某个地方获取一个,并根据自己的喜好更改其大小,然后使用.setFont()将其分配给条形码

使用此代码对我有用:

Graphics2D g2d = (Graphics2D) graphics;
Barcode b = BarcodeFactory.createCode128("Hello");
Font deriveFont = g2d.getFont().deriveFont(8.5f); //copy of original Font with given size
b.setFont(deriveFont);

字体尺寸不以像素为单位!我相信它的维度是分数。

答案 4 :(得分:0)

我试过这个并且有效:

    Barcode barcode;
    barcode = BarcodeFactory.createCode128B(Integer.toString("my barcode"));
    barcode.setBarHeight(40);
    barcode.setBarWidth(2);
    barcode.setFont(new Font(Font.SANS_SERIF, Font.PLAIN, 10));