Java生成條形碼code128

生成code 128條形碼工具類java

maven依賴apache

<!-- https://mvnrepository.com/artifact/net.sf.barcode4j/barcode4j -->
<dependency>
    <groupId>net.sf.barcode4j</groupId>
    <artifactId>barcode4j</artifactId>
    <version>2.1</version>
</dependency>

gradle依賴canvas

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

工具代碼:app

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;

/**
 * 條形碼工具類
 *
 * @author 明明如月
 * @date 2018/08/13
 */
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) {
            //ByteArrayOutputStream won't happen
        }

        return ous.toByteArray();
    }


}

若是以爲本文對你有幫助,歡迎點贊,歡迎關注我,若是有補充歡迎評論交流,我將努力創做更多更好的文章。maven

相關文章
相關標籤/搜索