java生成条形码~~使用barcode4j在线生成条形码


1. 简介

barcode4j条形码java生成库,支持多种编码格式:Code 39、Code 128、EAN-13等等。
官方地址:http://barcode4j.sourceforge.net/

2. 导入jar包

<dependency>
    <groupId>net.sf.barcode4j</groupId>
    <artifactId>barcode4j</artifactId>
    <version>2.1</version>
</dependency>

3. 入门Demo

3.1 java代码

package com.example.demo;

import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import org.krysalis.barcode4j.impl.code39.Code39Bean;
import org.krysalis.barcode4j.output.bitmap.BitmapCanvasProvider;
import org.krysalis.barcode4j.tools.UnitConv;

class DemoApplicationTests {

    @Test
    void contextLoads() {
    	//生成条形码数字
        String msg = "88886666";
        //生成位置信息
        String path = "D:/666.png";
        //生成高度
        int height = 160;
        //生成宽度
        double width = UnitConv.in2mm(1.0f / height);
        //输出流
        File file = new File(path);
        OutputStream out;
        try {
            out = new FileOutputStream(file);
        } catch (FileNotFoundException e) {
            throw new RuntimeException(e);
        }
        Code39Bean c39 = new Code39Bean();
        // 设置属性
        c39.setModuleWidth(width);
        c39.setWideFactor(2);
        // 输出类型
        String format = "image/png";
        BitmapCanvasProvider canvas = new BitmapCanvasProvider(out, format, height, BufferedImage.TYPE_BYTE_BINARY,false, 0);


        // 生成图片
        c39.generateBarcode(canvas, msg);
        try {
            // 关闭流
            canvas.finish();
            System.out.println("ok...");
        } catch (IOException e) {
            throw new RuntimeException(e);
        }
    }
}

3.2 效果图

在这里插入图片描述

4. 通过方法实现

4.1 Java代码

package com.example.demo;


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.Code39;
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;
import org.springframework.boot.test.context.SpringBootTest;

class DemoApplicationTests {

    /** * 生成文件 * * @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 = 130;
        // module宽度
        final double moduleWidth = UnitConv.in2mm(1.0f / dpi);

        // 配置对象
        bean.setModuleWidth(moduleWidth);
        // bean.setWideFactor(3);
        // msg高度
        bean.setBarHeight(3);
        // 白边显示
        bean.doQuietZone(true);

        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 = "213456789098";
        String path = "D:/barcode.png";
        generateFile(msg, path);
    }

}

4.2 效果图

在这里插入图片描述

5. 关于条形码生成格式

条形码生成地址: http://barcode4j.sourceforge.net/examples.html

如果使用其他条形码类型 使用BarcodeType 并创建此类
例如:
     ITF14Bean bean = new ITF14Bean
     Code128Bean bean = new Code182Bean

在这里插入图片描述


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM