当前位置: 首页 > 工具软件 > Barcode4J > 使用案例 >

java barcode4j 识别条形码_java-使用barcode4j条形码生成

鱼意远
2023-12-01

使用barcode4j条形码生成,

mvn管理

net.sf.barcode4j

barcode4j-light

2.0

代码实现

import lombok.extern.slf4j.Slf4j;

import org.apache.commons.lang3.StringUtils;

import org.krysalis.barcode4j.HumanReadablePlacement;

import org.krysalis.barcode4j.impl.code128.Code128Bean;

import org.krysalis.barcode4j.impl.code39.Code39Bean;

import org.krysalis.barcode4j.output.bitmap.BitmapCanvasProvider;

import org.krysalis.barcode4j.tools.UnitConv;

import java.awt.image.BufferedImage;

import java.io.*;

/**

* 条形码工具类

*

* @Author

* @Date

**/

@Slf4j

public class BarcodeUtil {

/**

* 生成文件

*

* @param msg

* @param path

* @return

*/

public static File generateFile(String msg, String path) {

File file = new File(path);

try {

generate(msg, new FileOutputStream(file));

} catch (FileNotFoundException e) {

throw new RuntimeException(e);

}

return file;

}

/**

* 生成字节

*

* @param msg

* @return

*/

public static byte[] generate(String msg) {

ByteArrayOutputStream ous = new ByteArrayOutputStream();

generate(msg, ous);

return ous.toByteArray();

}

/**

* 生成到流

*

* @param msg

* @param ous

*/

public static void generate(String msg, OutputStream ous) {

if (StringUtils.isEmpty(msg) || ous == null) {

return;

}

Code128Bean bean = new Code128Bean();

// 精细度

final int dpi = 150;

// module宽度

final double moduleWidth = UnitConv.in2mm(2.0f / dpi);

// 配置对象

bean.setModuleWidth(moduleWidth);

// bean.setWideFactor(3);

bean.doQuietZone(false);

//设置不显示字符

// bean.setMsgPosition(HumanReadablePlacement.HRP_NONE);

String format = "image/png";

try {

// 输出到流

BitmapCanvasProvider canvas = new BitmapCanvasProvider(ous, format, dpi,

BufferedImage.TYPE_BYTE_BINARY, false, 0);

// 生成条形码

bean.generateBarcode(canvas, msg);

// 结束绘制

canvas.finish();

} catch (IOException e) {

throw new RuntimeException(e);

}

}

}

 类似资料: