Как изменить размер текста, генерируемого 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));