importjava.awt.image.BufferedImage;importjava.io.IOException;importjava.lang.reflect.Constructor;importorg.jbarcode.JBarcode;importorg.jbarcode.encode.BarcodeEncoder;importorg.jbarcode.encode.Code39Encoder;importorg.jbarcode.paint.BaseLineTextPainter;importorg.jbarcode.paint.EAN13TextPainter;importorg.jbarcode.paint.WideRatioCodedPainter;importorg.jbarcode.paint.WidthCodedPainter;importorg.jbarcode.util.ImageUtil;public classOneBarcodeUtil {/*** 生成一维码
*@paramvalue 值
*@return
*/
public static byte[] createBarcodeDefault(String value){return createBarcode(Code39Encoder.class,value,false);
}//产生一维码图片
public static byte[] createBarcode(Class> clazz,String value,booleancheckDigit){try{
JBarcode localJBarcode= newJBarcode(getInstance(clazz),WidthCodedPainter.getInstance(),EAN13TextPainter.getInstance());
localJBarcode.setPainter(WideRatioCodedPainter.getInstance());
localJBarcode.setTextPainter(BaseLineTextPainter.getInstance());
localJBarcode.setCheckDigit(checkDigit);
localJBarcode.setShowCheckDigit(checkDigit);returngetBytes(localJBarcode.createBarcode(value));
}catch(Exception e) {
e.printStackTrace();return null;
}
}//获取单例的对象
private static BarcodeEncoder getInstance(Class> clazz) throwsException{
Constructor>[] constructors=clazz.getDeclaredConstructors();
Constructor> privateConstructor = constructors[0];
privateConstructor.setAccessible(true);return(BarcodeEncoder)privateConstructor.newInstance();
}//获取图片字节码数组
private static byte[] getBytes(BufferedImage paramBufferedImage) throwsIOException{return ImageUtil.encode(paramBufferedImage,"jpeg", 96, 96);
}
}