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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值