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