package com.ruoyi.service.impl; import org.krysalis.barcode4j.impl.code128.Code128Bean; import org.krysalis.barcode4j.output.bitmap.BitmapCanvasProvider; import org.springframework.stereotype.Service; import java.awt.image.BufferedImage; import java.io.ByteArrayOutputStream; import java.io.IOException; @Service public class BarcodeService { public byte[] generateBarcodeImage(String barcodeText) { try { Code128Bean barcodeGenerator = new Code128Bean(); final int dpi = 160; barcodeGenerator.setModuleWidth(0.21); barcodeGenerator.doQuietZone(false); ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); BitmapCanvasProvider canvas = new BitmapCanvasProvider( outputStream, "image/png", dpi, BufferedImage.TYPE_BYTE_BINARY, false, 0); barcodeGenerator.generateBarcode(canvas, barcodeText); canvas.finish(); return outputStream.toByteArray(); } catch (IOException e) { throw new RuntimeException("Error generating barcode", e); } } }