第七篇:JAVA生成条码(jbarcode)
来源:互联网 发布:dwg文件格式java解析 编辑:程序博客网 时间:2024/06/06 20:28
条码技术在现在的应用非常广泛,几乎所有的商品包装上都会印有条形码,这一篇将通过实例演示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 }}
阅读全文
0 0
- 第七篇:JAVA生成条码(jbarcode)
- JAVA生成条码(jbarcode)
- java使用jbarcode生成条形码
- java使用jbarcode生成条形码
- java使用jbarcode生成条形码
- Java使用jbarcode生成条形码
- java用JBarcode组件生成条形码
- java使用jbarcode生成条形码2-2
- jbarcode生成条纹码
- java根据条码字符串生成条码图
- 商品条形码的生成JBarcode
- 商品条形码(JBarcode)Java版(二)
- java用JBarcode组件生成条形码(支持自定义字体及颜色)
- 生成条码
- Java 开源条码生成组件 Barcode4J
- java生成条码号的源码
- java 生成条码并保存为SVG
- 转:Java 开源条码生成组件 Barcode4J
- iptables
- 智能交通的构建及前景分析
- error LNK2005: _DllMain@12 已经在 XXXX.obj 中定义
- excel 将一个sheet分割成多个sheet,并生成目录
- 作为会计必会的93个Excel快捷键比较全建议收藏
- 第七篇:JAVA生成条码(jbarcode)
- powerdesign设计步骤
- Leetcode 131. Palindrome Partitioning
- Objective-C Runtime 运行时之四:Method Swizzling
- 1138:破解简单密码
- Jmeter响应的数据是unicode编码格式,怎么转成中文字符显示
- 京东笔试题生日礼物
- Hibernate之一对一外键关联
- Leetcode 67. Add Binary