Выражение изображения должно возвращать любой подкласс java.awt.Image
.Самый простой способ добиться этого - использовать свой собственный вспомогательный класс для генерации Image.Вы можете создать статический метод, который генерирует штрих-код из String
и вызывать этот метод из IReport.
В случае ZXing я не знаю, какой метод использовать, но я могу сказать, что я используюв качестве ImageExpression с использованием библиотеки барбекю.
net.sourceforge.barbecue.BarcodeImageHandler.getImage(
MyBarcodeGenerator.getFromString($F{field})
MyBarcodeGenerator
класс содержит метод getFromString(...)
, который возвращает net.sourceforge.barbecue.Barcode
, в моем случае net.sourceforge.barbecue.linear.code39.Code39Barcode
Expression Class
игнорируется.
- Отредактировано:
Для кодирования изображения в zxing вы должны использовать MatrixToImageWriter
Следующий код закодирует QRCode в BufferedImage, который вы можете использоватьв поле «Выражение изображения»:
MatrixToImageWriter.toBufferedImage(new QRCodeWriter().encode("BARCODE CONTENT", BarcodeFormat.QR_CODE, 400 /*Width*/, 400/*Height*/));