Java条形码生成(128c)
需要jbarcode的jar包支持。
下載地址:https://sourceforge.net/projects/jbcode
注:部分同學使用eclipse時無法直接使用BASE64Encoder,解決方法在代碼下面。
本文提供兩種方式
套餐一:生成返回值為Base64編碼的條形碼。
套餐二:生成條形碼并輸出到本地。
代碼如下:
1 public class BarcodeUtil { 2 3 /** 4 * @FunctionName generateBarCode128 (轉自:http://blog.csdn.net/shb2058/article/details/77523330) 5 * @Description 生成返回值為Base64編碼的條形碼 6 * @param strBarCode 7 * @param dimension 8 * @param barheight 9 * @return 10 */ 11 public static String generateBarCode128(String strBarCode, String dimension, String barheight) { 12 13 try { 14 ByteArrayOutputStream outputStream = null; 15 BufferedImage bi = null; 16 JBarcode productBarcode = new JBarcode(Code128Encoder.getInstance(), WidthCodedPainter.getInstance(), 17 EAN13TextPainter.getInstance()); 18 19 // 尺寸,面積,大小 密集程度 20 productBarcode.setXDimension(Double.valueOf(dimension).doubleValue()); 21 // 高度 10.0 = 1cm 默認1.5cm 22 productBarcode.setBarHeigth(Double.valueOf(barheight).doubleValue()); 23 // 寬度 24 productBarcode.setWideRatio(Double.valueOf(30).doubleValue()); 25 // 是否顯示字體 26 productBarcode.setShowText(true); 27 // 顯示字體樣式 28 productBarcode.setTextPainter(BaseLineTextPainter.getInstance()); 29 30 // 生成二維碼 31 bi = productBarcode.createBarcode(strBarCode); 32 33 outputStream = new ByteArrayOutputStream(); 34 ImageIO.write(bi, "jpg", outputStream); 35 // 創建輸出流 36 BASE64Encoder encoder = new BASE64Encoder(); 37 return encoder.encode(outputStream.toByteArray()); 38 } catch (Exception e) { 39 e.printStackTrace(); 40 return "encodeError"; 41 } 42 } 43 44 /** 45 * @FunctionName outImgToPath 46 * @Description 生成條形碼并輸出到本地 47 * @author 魔方Cube 48 * @param strBarCode 條形碼:0-100位 49 * @param dimension 商品條形碼:尺寸 50 * @param barheight 商品條形碼:高度 51 * @param path 存儲路徑 52 */ 53 public static void outImgToPath(String strBarCode, String dimension, String barheight, String path) { 54 String encoder = generateBarCode128(strBarCode, dimension, barheight); 55 if(encoder==null){ 56 return; 57 } 58 BASE64Decoder decoder = new BASE64Decoder(); 59 byte[] b; 60 try { 61 b = decoder.decodeBuffer(encoder); 62 OutputStream out = new FileOutputStream(path); 63 out.write(b); 64 out.flush(); 65 out.close(); 66 } catch (IOException e) { 67 e.printStackTrace(); 68 } 69 } 70 71 /** 72 * @param args 73 * @throws InvalidAtributeException 74 */ 75 public static void main(String[] args) throws InvalidAtributeException { 76 77 String encode2 = BarcodeUtil.generateBarCode128("693698334", "0.5", "30"); 78 outImgToPath("693698334", "0.5", "30", "D:\\B.jpg"); 79 System.out.println(encode2); 80 81 } 82 83 }?
解決使用eclipse時無法直接使用BASE64Encoder(推薦方法三):
方法一:右鍵項目->點擊properties,選擇Java Build Path設置項,再選擇Libraries標簽,Add External Jars添加%JAVA_HOME%\jre\lib\rt.jar就可以使用啦。
方法二:右鍵項目->點擊properties,將自己配置的library 文件移除,再點擊add library,選擇jre system Library,點擊---next,最后finish 完成即可
方法三:右鍵項目->點擊properties,選擇Java Build Path設置項,再選擇Libraries標簽,選中jre System Library,雙擊Access rules,點擊add,resolution選擇accessible,下面填上**?點擊確定即可。如圖:
?
轉載于:https://www.cnblogs.com/mosEast/p/8568295.html
總結
以上是生活随笔為你收集整理的Java条形码生成(128c)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Imagelist 控件
- 下一篇: SQL 语句递归查询 With AS 查