java制作条形码_Java生成条形码code128(亲测有效)

生成code 128条形码工具类

maven依赖

net.sf.barcode4j

barcode4j

2.1

gradle依赖

compile("net.sf.barcode4j:barcode4j:2.1")

工具代码

package com.tian.demo.admin.controller;

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 java.awt.image.BufferedImage;

import java.io.ByteArrayOutputStream;

import java.io.IOException;

/**

* @ClassName BarCodeUtils

* @Description TODO

* @Author Harry

* @Date 2020/5/130:35

* @Version 1.0

**/

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

}

return ous.toByteArray();

}

}

控制层调用

@GetMapping("test")

public void test(HttpServletRequest request,HttpServletResponse response) throws IOException {

String parameter = request.getParameter("");

byte[] bytes = BarCodeUtils.generateBarCode128("4305383450594", 10.00, 0.3, true, false);

response.setContentType("image/png");

OutputStream output = response.getOutputStream();

InputStream in = new ByteArrayInputStream(bytes);

int len;

byte[] buf = new byte[1024];

while ((len = in.read(buf)) != -1) {

output.write(buf, 0, len);

}

output.flush();

//如果没有下面两行,可能出现getOutputStream() has already been called for this response的异常

// output.clear();

// out = pageContext.pushBody();

// Result result = new Result();

}

19aaa2190e7100e9c1d5ea3c5cad02af.png

到此这篇关于Java生成条形码code128(亲测有效)的文章就介绍到这了,更多相关Java生成条形码code128内容请搜索聚米学院以前的文章或继续浏览下面的相关文章希望大家以后多多支持聚米学院!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值