JAVA生成code128条形码
引入maven坐标
<dependency>
<groupId>net.sf.barcode4j</groupId>
<artifactId>barcode4j</artifactId>
<version>2.1</version>
</dependency>
BarCodeUtils工具类
package com.example.demo.util;
import org.apache.commons.lang.ObjectUtils;
import org.krysalis.barcode4j.HumanReadablePlacement;
import org.krysalis.barcode4j.impl.code128.Code128Bean;
import org.krysalis.barcode4j.output.bitmap.BitmapCanvasProvider;
import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.*;
/**
* @author yuanzeyu
* @since 2021/12/28 15:48
*/
public class BarCodeUtils {
/**
* 生成code128条形码
*
* @param height 条形码的高度
* @param width 条形码的宽度
* @param message 要生成的文本
* @param withQuietZone 是否两边留白
* @param hideText 隐藏可读文本
* @return 图片对应的字节码
*/
public static byte[] generateBarCode128(String message, Double height, Double width, boolean withQuietZone, boolean hideText) {
Code128Bean bean = new Code128Bean();
// 分辨率
int dpi = 512;
// 设置两侧是否留白
bean.doQuietZone(withQuietZone);
// 设置条形码高度和宽度
bean.setBarHeight((double) ObjectUtils.defaultIfNull(height, 9.0D));
if (width != null) {
bean.setModuleWidth(width);
}
// 设置文本位置(包括是否显示)
if (hideText) {
bean.setMsgPosition(HumanReadablePlacement.HRP_NONE);
}
// 设置图片类型
String format = "image/png";
ByteArrayOutputStream ous = new ByteArrayOutputStream();
BitmapCanvasProvider canvas = new BitmapCanvasProvider(ous, format, dpi,
BufferedImage.TYPE_BYTE_BINARY, false, 0);
// 生产条形码
bean.generateBarcode(canvas, message);
try {
canvas.finish();
} catch (IOException e) {
//ByteArrayOutputStream won't happen
}
return ous.toByteArray();
}
public static void main(String[] args) {
File zipFile = new File("D:\\1.jpg");
byte[] generateBarCode128 = BarCodeUtils.generateBarCode128("yzytest", null, null, true, false);
ByteArrayOutputStream byteArrayOut = new ByteArrayOutputStream();
ByteArrayInputStream in = new ByteArrayInputStream(generateBarCode128);
BufferedImage bufferImg = null;
try {
bufferImg = ImageIO.read(in);
ImageIO.write(bufferImg, "jpg", byteArrayOut);
FileOutputStream fos2 = new FileOutputStream(zipFile);
byteArrayOut.writeTo(fos2);
fos2.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
转载 https://blog.csdn.net/w605283073/article/details/81637674