生成一维码条码码,扫码查询相关条码信息

时间:2025-02-15 09:31:29
import java.awt.image.BufferedImage; import java.io.ByteArrayOutputStream; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStream; import javax.imageio.ImageIO; import org.apache.commons.lang.StringUtils; import org.jbarcode.JBarcode; import org.jbarcode.encode.Code128Encoder; import org.jbarcode.encode.EAN13Encoder; import org.jbarcode.encode.InvalidAtributeException; import org.jbarcode.paint.BaseLineTextPainter; import org.jbarcode.paint.EAN13TextPainter; import org.jbarcode.paint.WidthCodedPainter; import org.krysalis.barcode4j.impl.code128.Code128Bean; import org.krysalis.barcode4j.output.bitmap.BitmapCanvasProvider; import sun.misc.BASE64Encoder; public class BarcodeUtil { /** * 128条形码 * * @param strBarCode * 条形码:0-100位 * @param dimension * 商品条形码:尺寸 * @param barheight * 商品条形码:高度 * @return 图片(Base64编码) */ public static String generateBarCode128(String strBarCode,String dimension,String barheight) { try { ByteArrayOutputStream outputStream = null; BufferedImage bi = null; int len = strBarCode.length(); JBarcode productBarcode = new JBarcode(Code128Encoder.getInstance(), WidthCodedPainter.getInstance(), EAN13TextPainter.getInstance()); // 尺寸,面积,大小 密集程度 productBarcode.setXDimension(Double.valueOf(dimension).doubleValue()); // 高度 10.0 = 1cm 默认1.5cm productBarcode.setBarHeight(Double.valueOf(barheight).doubleValue()); // 宽度 productBarcode.setWideRatio(Double.valueOf(20).doubleValue()); // 是否显示字体 productBarcode.setShowText(true); // 显示字体样式 productBarcode.setTextPainter(BaseLineTextPainter.getInstance()); // 生成二维码 bi = productBarcode.createBarcode(strBarCode); outputStream = new ByteArrayOutputStream(); ImageIO.write(bi, "jpg", outputStream); BASE64Encoder encoder = new BASE64Encoder(); // ((())); return encoder.encode(outputStream.toByteArray()); } catch (Exception e) { e.printStackTrace(); return "encodeError"; } } }