商品条形码的生成JBarcode

①背景        

      目前商品条形码的应用场景已经遍布各类互联网平台,通常是将产品/商品的唯一编号存储于条形码中以做扫码识别。

     而用于生产环境的条形码技术仍然存在,条码技术在现在的应用非常广泛,几乎所有的商品包装上都会印有条形码。

②环境准备

 JBarcode下载地址,下载最新版本:jbarcode-0.2.8.jar,我基本上都是去官网去下载一些东西,一些你不知道的答案,在网络上基本上都有,

   所以还是建议大家都多去官网浏览。

③效果

     

④代码示例

import java.awt.image.BufferedImage;

import java.io.File;

import java.io.FileOutputStream;

import java.io.IOException;

import org.jbarcode.JBarcode;

import org.jbarcode.encode.Code39Encoder;

import org.jbarcode.encode.EAN13Encoder;

import org.jbarcode.encode.InvalidAtributeException;

import org.jbarcode.paint.BaseLineTextPainter;

import org.jbarcode.paint.EAN13TextPainter;

import org.jbarcode.paint.WideRatioCodedPainter;

import org.jbarcode.util.ImageUtil;

import org.junit.Test;

public classTestCode{

   /*

    * BarcodeEncoder  生成条形码规则(EAN12 欧洲商品条形码)

    * BarcodePainter  绘制条形码的对象

    * TextPainter   绘制条形码的文本对象(也就是条形码下边那个名字)

    * */

  @Test

  publicvoidm01() throwsInvalidAtributeException, IOException{

      JBarcode jBarcode=new JBarcode(EAN13Encoder.getInstance(),

           WideRatioCodedPainter.getInstance(),EAN13TextPainter.getInstance());

      jBarcode.setEncoder(Code39Encoder.getInstance());

      jBarcode.setPainter(WideRatioCodedPainter.getInstance());

      jBarcode.setTextPainter(BaseLineTextPainter.getInstance());

      jBarcode.setShowCheckDigit(false); //是否校验码,EAN13可以不用校验。

      //java中的BufferedImage来存储图像,最后把图像写入到磁盘中。

      String code="01010221";

      BufferedImage bufferedImage=jBarcode.createBarcode(code);

      //设置图片的后缀名如:jpg,png,jpeg等、

      //System.currentTimeMillis()产生一个毫秒,从1970110时起的毫秒数

      saveToPNG(bufferedImage,""+System.currentTimeMillis(),"code","D:/");

     

  }

  /* 将条形码制作成一张图片

   * bufferedImage 做好条形码的图片对象

   * fileName 图片的名称

   * dirName 图片存储的文件夹的名称

   * path 图片存储的磁盘路径

   * */

  privatevoidsaveToPNG(BufferedImage bufferedImage,String fileName,

         String dirName,String path) throws IOException{

      saveToFile(bufferedImage, fileName, "png", path+dirName);

  }

  privatevoidsaveToFile(BufferedImage bufferedImage,String fileName,

         String suffix,String path) throws IOException{

      File file=new File(path);

      if(!file.exists()){

         file.mkdirs();

      }

      //输入条形码

      FileOutputStream fileOutputStream=new FileOutputStream(path+"/"+fileName+"."+suffix);

      ImageUtil.encodeAndWrite(bufferedImage, suffix, fileOutputStream);

      fileOutputStream.close();

  } 

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值