条形码技术

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/wangshuxuncom/article/details/85038324

1、下载jar包:https://download.csdn.net/download/wangshuxuncom/10852123

2、编写生成条形码的java代码:

import java.awt.image.BufferedImage;
import java.io.FileOutputStream;
import java.text.SimpleDateFormat;
import java.util.Date;

import org.jbarcode.JBarcode;
import org.jbarcode.encode.EAN13Encoder;
import org.jbarcode.paint.EAN13TextPainter;
import org.jbarcode.paint.WidthCodedPainter;
import org.jbarcode.util.ImageUtil;

public class BarcodeUtil {

	/**
	 * 生成商品条形码
	 *
	 * @author GaoHuanjie
	 */
	public static String create(String savePath, String jbarCode, String imageFormat) {

		try {
			JBarcode jbarcode13 = new JBarcode(EAN13Encoder.getInstance(), WidthCodedPainter.getInstance(),
					EAN13TextPainter.getInstance());
			
			int length = jbarCode.length();
			String barCode = jbarCode.substring(0, length - 1);// 获取到前12位
			
			String code = jbarCode.substring(length - 1, length);
			String checkCode = jbarcode13.calcCheckSum(barCode);// 获取到校验位

			if (!code.equals(checkCode)) {
				return "EN-13 条形码最后一位校验码不对,应该是: " + checkCode;
			}

			jbarcode13.setXDimension(Double.valueOf(0.8).doubleValue());// 尺寸,面积,大小
			jbarcode13.setBarHeight(Double.valueOf(30).doubleValue());// 条形码高度
			jbarcode13.setWideRatio(Double.valueOf(20).doubleValue());// 宽度率
			jbarcode13.setShowCheckDigit(true);// 是否校验最后一位,默认是false
			
			SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddhhmmss");
			String imageName = sdf.format(new Date()) + "_" + jbarCode;// 定义图片名称
			
			String imagePath = savePath + imageName + "." + imageFormat;
			FileOutputStream fileOutputStream = new FileOutputStream(imagePath);
			
			BufferedImage bufferedImage = jbarcode13.createBarcode(barCode);// 生成二维码
			ImageUtil.encodeAndWrite(bufferedImage, imageFormat, fileOutputStream, 96, 96);// 保存二维码图片
			fileOutputStream.close();

			return imagePath;
		} catch (Exception e) {
			e.printStackTrace();
			return null;
		}
	}
}

3、测试代码:

import org.jbarcode.encode.InvalidAtributeException;
import org.jbarcode.util.ImageUtil;

public class Test {

    public static void main(String[] args) throws InvalidAtributeException {
        String path = BarcodeUtil.create("D:\\", "6937748304340", ImageUtil.JPEG);
        System.out.println(path);
    }
}

猜你喜欢

转载自blog.csdn.net/wangshuxuncom/article/details/85038324