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);
|
}
|
}
|
}
|