条码技术在现在的应用非常广泛,几乎所有的商品包装上都会印有条形码,这一篇将通过实例演示JAVA如何生成条码,需要使用的第三方包为:jbarcode

import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.io.OutputStream;import javax.imageio.ImageIO;import org.jbarcode.JBarcode;
import org.jbarcode.encode.CodabarEncoder;
import org.jbarcode.encode.Code11Encoder;
import org.jbarcode.encode.Code128Encoder;
import org.jbarcode.encode.Code39Encoder;
import org.jbarcode.encode.Code39ExtEncoder;
import org.jbarcode.encode.Code93Encoder;
import org.jbarcode.encode.Code93ExtEncoder;
import org.jbarcode.encode.EAN13Encoder;
import org.jbarcode.encode.EAN8Encoder;
import org.jbarcode.encode.Interleaved2of5Encoder;
import org.jbarcode.encode.InvalidAtributeException;
import org.jbarcode.encode.MSIPlesseyEncoder;
import org.jbarcode.encode.PostNetEncoder;
import org.jbarcode.encode.Standard2of5Encoder;
import org.jbarcode.encode.UPCAEncoder;
import org.jbarcode.encode.UPCEEncoder;
import org.jbarcode.paint.BaseLineTextPainter;
import org.jbarcode.paint.EAN13TextPainter;
import org.jbarcode.paint.EAN8TextPainter;
import org.jbarcode.paint.HeightCodedPainter;
import org.jbarcode.paint.UPCATextPainter;
import org.jbarcode.paint.UPCETextPainter;
import org.jbarcode.paint.WideRatioCodedPainter;
import org.jbarcode.paint.WidthCodedPainter;/*** 条形码创建,需添加jar包:jbarcode-0.2.8.jar* * @author jianggujin* */
public class BarcodeCreater
{/** 用于生成条形码的对象 **/private JBarcode barcode = null;/*** 构造方法*/public BarcodeCreater(){barcode = new JBarcode(EAN13Encoder.getInstance(),WidthCodedPainter.getInstance(), EAN13TextPainter.getInstance());barcode.setBarHeight(17);barcode.setShowText(true);barcode.setCheckDigit(true);barcode.setShowCheckDigit(true);}/*** 生成条形码文件* * @param code*           条形码内容* @param file*           生成文件* @throws InvalidAtributeException* @throws IOException*/public void write(String code, File file) throws IOException,InvalidAtributeException{ImageIO.write(toBufferedImage(code), "JPEG", file);}/*** 生成条形码并写入指定输出流* * @param code*           条形码内容* @param os*           输出流* @throws IOException* @throws InvalidAtributeException*/public void write(String code, OutputStream os) throws IOException,InvalidAtributeException{ImageIO.write(toBufferedImage(code), "JPEG", os);}/*** 创建条形码的BufferedImage图像* * @param code*           条形码内容* @return image* @throws InvalidAtributeException*/public BufferedImage toBufferedImage(String code)throws InvalidAtributeException{return barcode.createBarcode(code);}/*** 设置编码* * @param encoder*/public void setEncoder(BarcodeEncoder encoder){int val = encoder.ordinal();switch (val){case 0:barcode.setEncoder(EAN13Encoder.getInstance());barcode.setPainter(WidthCodedPainter.getInstance());barcode.setTextPainter(EAN13TextPainter.getInstance());barcode.setBarHeight(17);barcode.setShowText(true);barcode.setCheckDigit(true);barcode.setShowCheckDigit(true);break;case 1:barcode.setEncoder(UPCAEncoder.getInstance());barcode.setPainter(WidthCodedPainter.getInstance());barcode.setTextPainter(UPCATextPainter.getInstance());barcode.setBarHeight(17);barcode.setShowText(true);barcode.setCheckDigit(true);barcode.setShowCheckDigit(true);break;case 2:barcode.setEncoder(EAN8Encoder.getInstance());barcode.setPainter(WidthCodedPainter.getInstance());barcode.setTextPainter(EAN8TextPainter.getInstance());barcode.setBarHeight(17);barcode.setShowText(true);barcode.setCheckDigit(true);barcode.setShowCheckDigit(true);break;case 3:barcode.setEncoder(UPCEEncoder.getInstance());barcode.setTextPainter(UPCETextPainter.getInstance());barcode.setPainter(WidthCodedPainter.getInstance());barcode.setBarHeight(17);barcode.setShowText(true);barcode.setCheckDigit(true);barcode.setShowCheckDigit(true);break;case 4:barcode.setEncoder(CodabarEncoder.getInstance());barcode.setPainter(WideRatioCodedPainter.getInstance());barcode.setTextPainter(BaseLineTextPainter.getInstance());barcode.setBarHeight(17);barcode.setShowText(true);barcode.setCheckDigit(true);barcode.setShowCheckDigit(true);break;case 5:barcode.setEncoder(Code11Encoder.getInstance());barcode.setPainter(WidthCodedPainter.getInstance());barcode.setTextPainter(BaseLineTextPainter.getInstance());barcode.setBarHeight(17);barcode.setShowText(true);barcode.setCheckDigit(true);barcode.setShowCheckDigit(true);break;case 6:barcode.setEncoder(Code39Encoder.getInstance());barcode.setPainter(WideRatioCodedPainter.getInstance());barcode.setTextPainter(BaseLineTextPainter.getInstance());barcode.setBarHeight(17);barcode.setShowText(true);barcode.setCheckDigit(false);barcode.setShowCheckDigit(false);break;case 7:barcode.setEncoder(Code39ExtEncoder.getInstance());barcode.setPainter(WideRatioCodedPainter.getInstance());barcode.setTextPainter(BaseLineTextPainter.getInstance());barcode.setBarHeight(17);barcode.setShowText(true);barcode.setCheckDigit(false);barcode.setShowCheckDigit(false);break;case 8:barcode.setEncoder(Code93Encoder.getInstance());barcode.setPainter(WidthCodedPainter.getInstance());barcode.setTextPainter(BaseLineTextPainter.getInstance());barcode.setBarHeight(17);barcode.setShowText(true);barcode.setCheckDigit(true);barcode.setShowCheckDigit(false);break;case 9:barcode.setEncoder(Code93ExtEncoder.getInstance());barcode.setPainter(WidthCodedPainter.getInstance());barcode.setTextPainter(BaseLineTextPainter.getInstance());barcode.setBarHeight(17);barcode.setShowText(true);barcode.setCheckDigit(true);barcode.setShowCheckDigit(false);break;case 10:barcode.setEncoder(Code128Encoder.getInstance());barcode.setPainter(WidthCodedPainter.getInstance());barcode.setTextPainter(BaseLineTextPainter.getInstance());barcode.setBarHeight(17);barcode.setShowText(true);barcode.setCheckDigit(true);barcode.setShowCheckDigit(false);break;case 11:barcode.setEncoder(MSIPlesseyEncoder.getInstance());barcode.setPainter(WidthCodedPainter.getInstance());barcode.setTextPainter(BaseLineTextPainter.getInstance());barcode.setBarHeight(17);barcode.setShowText(true);barcode.setCheckDigit(true);barcode.setShowCheckDigit(true);break;case 12:barcode.setEncoder(Standard2of5Encoder.getInstance());barcode.setPainter(WideRatioCodedPainter.getInstance());barcode.setTextPainter(BaseLineTextPainter.getInstance());barcode.setBarHeight(17);barcode.setShowText(true);barcode.setCheckDigit(true);barcode.setShowCheckDigit(false);break;case 13:barcode.setEncoder(Interleaved2of5Encoder.getInstance());barcode.setPainter(WideRatioCodedPainter.getInstance());barcode.setTextPainter(BaseLineTextPainter.getInstance());barcode.setBarHeight(17);barcode.setShowText(true);barcode.setCheckDigit(true);barcode.setShowCheckDigit(true);break;case 14:barcode.setEncoder(PostNetEncoder.getInstance());barcode.setPainter(HeightCodedPainter.getInstance());barcode.setTextPainter(BaseLineTextPainter.getInstance());barcode.setBarHeight(6);barcode.setShowText(false);barcode.setCheckDigit(true);barcode.setShowCheckDigit(false);break;}}/*** 条形码编码方式* * @author jianggujin* */public enum BarcodeEncoder{EAN13, UPCA, EAN8, UPCE, Codabar, Code11, Code39, Code39Ext, Code93, Code93Ext, Code128, MSIPlessey, Standard2of5, Interleaved2of5, PostNet}
}

JAVA生成条码(jbarcode)相关推荐

  1. java生成条码图片、打印二维码、图片合并、图片加文字

    通过java生成二维码图片,可以添加文字内容,非常方便实现打印. import java.awt.Color; import java.awt.Font; import java.awt.FontMe ...

  2. java生成条码_Java生成商品条形码

    之前没有使用过这个,现在使用JBarcode生成商品条形码,工作之前的准备工作: Eclipse: Eclipse Java EE IDE for Web Developers. Version: H ...

  3. 二维码相关---java生成二维码名片,并且自动保存到手机通讯录中...

    二维码相关---java生成二维码名片,并且自动保存到手机通讯录中... 技术qq交流群:JavaDream:251572072 1.首先介绍一个api.   Zxing是Google提供的关于条码 ...

  4. Java生成四种格式的二维码

    2022年2月23日 随着技术的不断发展与更新,现在的二维码的生成,完全可以交给前端来进行实现. 基于谷歌zxing实现的生成二维码工具类.可生成纯二维码:带Logo二维码:带文字二维码:带Logo带 ...

  5. Java 生成二维码。

    Java 生成二维码. 文章目录 Java 生成二维码. 二维码. 发展. 一维码. 二维码. 优缺点. QR Code. 生成方法. 第三方 jar.eg. zxing 和 qrcodejar. J ...

  6. Java生成二维码或条形码

    分享一个工具类,用来生成条形码以及二维码的 注意条形码的条码内容 必须是0~9的数字,且位数在11~12 具体工具类代码如下: import com.google.zxing.BarcodeForma ...

  7. java生成、识别条形码和二维码

    一.概述 使用 zxing 开源库 Zxing主要是Google出品的,用于识别一维码和二维码的第三方库 主要类: BitMatrix 位图矩阵 MultiFormatWriter 位图编写器 Mat ...

  8. java生成二维码 并调用二维码打印机

    自己折腾了好久,百度.google了半天,发现java生成二维码的文章倒是很多,但是调用二维码打印的就很少了,好多打印出来要么是二维码占用好几张纸,要么就是多出4.5张白纸,浪费了我不少的条码纸,最终 ...

  9. 二维码相关---java生成二维码名片,而且自己主动保存到手机通讯录中...

    版权声明:本文为博主原创文章,未经博主credreamer 同意不得转载 违者追究法律责任. https://blog.csdn.net/lidew521/article/details/244418 ...

最新文章

  1. Apache、Nginx、Tomcat、PHP的区别
  2. 在aptana3中使用scriptDoc__scriptDoc 2.0完全参考
  3. 玩转小程序转发——小程序探索
  4. Kafka分区分配策略(2)——RoundRobinAssignor和StickyAssignor
  5. 宝塔部署node项目_宝塔面板部署 node.js 项目
  6. layui表单验证方式大全
  7. ndroid中View.inflate()
  8. FoundationDB 学习 - 事务流程
  9. 【成长之路】【python】python基础2
  10. java day50【综合案例day02】
  11. Django框架(二)---- 常用命令
  12. app接口制作简单流程
  13. BlockUI对话框
  14. java excel 筛选_Java 在Excel中添加筛选器并执行筛选
  15. 物联网linux系统设计,Ostro:面向物联网优化的基于 Linux的开源操作系统
  16. 几个潜在的AI科研助手
  17. android底部导航切换实现(md)
  18. java split 数字_java 怎样分割数字和汉字
  19. SQL基本语句使用总结
  20. ToggleButtonBar的使用

热门文章

  1. 0523- 人员定位系统问题随手记
  2. 【微信】1.微信小程序开发--入门
  3. 浅谈Borg/YARN/Mesos/Torca/Corona一类系统
  4. Quartz.NET实现作业调度
  5. 使用webpack前端重构感受
  6. Impala SQL 语言参考
  7. 问题十三:怎么用ray tracing画个球
  8. 通信线路工程验收规范 gb51171-2016_一级建造师市政涉及到的相关规范汇总
  9. sass 混入 (@mixin 与 @include的使用)
  10. android 二级 滚动,android使用 ScrollerView 实现 可上下滚动的分类栏实例