龙空技术网

整理关于java实现条形码的生成代码供大家参考

淮安二傻子 177

前言:

现在大家对“java白色背景编码”大体比较看重,各位老铁们都想要了解一些“java白色背景编码”的相关资讯。那么小编也在网络上汇集了一些有关“java白色背景编码””的相关文章,希望咱们能喜欢,兄弟们快快来学习一下吧!

目前二维码的应用场景已经遍布各类互联网平台,通常是将产品/商品的唯一编号存储于二维码中以做扫码识别。

而用于生产环境的条形码技术仍然存在,如硬件设备制造、供应、物流运输等等。

在常见的产品信息管理、物料订单系统中,存在多个生成及打印条形码(一维码)的需求场景。

解决方案

Java生成条形码的方案 -- barcode4j

barcode4j

barcode4j开源Java条形码生成库。支持多种编码格式,比如:code-39,code-128等

下载barcode4j-light

maven地址

<dependency>

<groupId>net.sf.barcode4j</groupId>

<artifactId>barcode4j-light</artifactId>

<version>2.0</version>

</dependency>

//直接下载barcode4j-bin包

参考代码:

package utils;

import java.awt.image.BufferedImage;

import java.io.ByteArrayOutputStream;

import java.io.File;

import java.io.FileNotFoundException;

import java.io.FileOutputStream;

import java.io.IOException;

import java.io.OutputStream;

import org.apache.commons.lang.StringUtils;

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

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

import org.krysalis.barcode4j.tools.UnitConv;

/**

* 条形码工具类

*

* @author tangzz

* @createDate 2015年9月17日

*

*/

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;

}

Code39Bean bean = new Code39Bean();

// 精细度

final int dpi = 150;

// module宽度

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

// 配置对象

bean.setModuleWidth(moduleWidth);

bean.setWideFactor(3);

bean.doQuietZone(false);

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

}

}

public static void main(String[] args) {

String msg = "123456789";

String path = "barcode.png";

generateFile(msg, path);

}

}

条形码相对二维码来说还是有很多缺陷,例如字符限制以及容易受到损坏之类的,如果大家想学习二维码的产生方式,可以参考我另外的一篇文章。

请大家多多关注我的头条号,谢谢大家。

标签: #java白色背景编码 #生成条形码java