zoukankan      html  css  js  c++  java
  • java 生成条形码

    package com.sun.erwei;

    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.lang3.StringUtils;
    import org.krysalis.barcode4j.impl.code128.Code128Bean;
    import org.krysalis.barcode4j.impl.code39.Code39Bean;
    import org.krysalis.barcode4j.impl.upcean.EAN13Bean;
    import org.krysalis.barcode4j.output.bitmap.BitmapCanvasProvider;
    import org.krysalis.barcode4j.tools.UnitConv;

    /**
    * 条形码工具类
    *
    * @author
    * @createDate
    *
    */
    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;
    }

    EAN13Bean bean=new EAN13Bean();//条形码类型

    // Code39Bean bean = new Code39Bean();

    // 精细度
    final int dpi = 150;
    // module宽度
    final double moduleWidth = UnitConv.in2mm(2.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 = "123456789123";
    String path = "C:/Users/xsp034/Desktop/barcode.png";
    generateFile(msg, path);
    }
    }

    需要用到barcode4j.jar barcode4j-light.jar common-lang3.jar

  • 相关阅读:
    Codeforces-859C Pie Rules(dp)
    Codeforces-550D Regular Bridge
    Codeforces-534D Handshakes
    抽象类
    内部类
    接口
    初始化
    this 和super
    数据库测试的测试点
    数据库测试的主要内容
  • 原文地址:https://www.cnblogs.com/austinspark-jessylu/p/6223005.html
Copyright © 2011-2022 走看看