1. 程式人生 > >BarCodeUtile

BarCodeUtile

package com.rscode.credits.util;

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.code128.Code128Bean; import org.krysalis.barcode4j.output.bitmap.BitmapCanvasProvider; import org.krysalis.barcode4j.tools.UnitConv; /** * @author 作者 TN * @version 建立時間:2018年10月24日 * 類說明 條形碼工具類 */ public class BarCodeUtile { /** * 生成檔案 * * @param
msg 條形碼資訊 * @param barCodePath 條形碼圖片儲存地址 +圖片名 * @return 返回生成的檔案 */ public static File generateFile(String msg, String barCodePath) { File file = new File(barCodePath); 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; } Code128Bean bean = new Code128Bean(); // EAN13Bean bean=new EAN13Bean();//條形碼型別 // 精細度 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); // 生成條形碼 System.err.println("條形碼msg:"+msg); bean.generateBarcode(canvas, msg); // 結束繪製 canvas.finish(); } catch (IOException e) { throw new RuntimeException(e); } } // public static void main(String[] args) { // String msg ="123456789123"; //一時間加ID生成圖片 內容 // String imageName = msg+".png"; //圖片名字 // String path = "C:\\Users\\13320\\Desktop\\WORK\\Image\\barcode\\"+imageName; // File file = generateFile(msg, path); // String name = file.getName(); // System.err.println(name); // } }