Как изменить размер текста, генерируемого Barbecue API?

Я пытаюсь сгенерировать штрих-код, используя 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();
}

Ниже выводится изображение штрих-кода:

Вывод обеих частей

Как видите, код остается прежним. Как я могу уменьшить его размер? Пожалуйста, помогите мне.

Благодарю.

5 ответов

Решение

Используйте класс BarCodeBuilder вместо этого, если Barcodeкак

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

Меня устраивает...

Штрих-код б;

b.setFont (нуль);

Это поможет вам получить размер шрифта до 0.

Я полагаю, вы должны использовать метод Barcode.setFont(), чтобы установить размер шрифта

ссылка

Поскольку net.sourceforge.barbecue.Barcode getFont() возвращает старый добрый нуль, вам нужно либо создать объект 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);

Размер шрифта не указан в пикселях! Я считаю, что его размерность - это очки

Я попробовал это, и это сработало:

    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));
Другие вопросы по тегам