条码编码方式-----Code 39与code 128条形码的区别
工具类:
import java.awt.image.BufferedImage; import java.io.ByteArrayOutputStream; import javax.imageio.ImageIO; import org.apache.commons.lang.StringUtils; import org.jbarcode.JBarcode; import org.jbarcode.encode.Code128Encoder; import org.jbarcode.encode.EAN13Encoder; import org.jbarcode.encode.InvalidAtributeException; import org.jbarcode.paint.BaseLineTextPainter; import org.jbarcode.paint.EAN13TextPainter; import org.jbarcode.paint.WidthCodedPainter; import sun.misc.BASE64Encoder; public class BarcodeUtil { /** * 128条形码 * * @param strBarCode * 条形码:0-100位 * @param dimension * 商品条形码:尺寸 * @param barheight * 商品条形码:高度 * @return 图片(Base64编码) */ public static String generateBarCode128(String strBarCode,String dimension,String barheight) { try { ByteArrayOutputStream outputStream = null; BufferedImage bi = null; int len = strBarCode.length(); JBarcode productBarcode = new JBarcode(Code128Encoder.getInstance(), WidthCodedPainter.getInstance(), EAN13TextPainter.getInstance()); // 尺寸,面积,大小 密集程度 productBarcode.setXDimension(Double.valueOf(dimension).doubleValue()); // 高度 10.0 = 1cm 默认1.5cm //productBarcode.setBarHeight(Double.valueOf(barheight).doubleValue()); // 宽度 //productBarcode.setWideRatio(Double.valueOf(30).doubleValue()); // 是否显示字体 productBarcode.setShowText(true); // 显示字体样式 productBarcode.setTextPainter(BaseLineTextPainter.getInstance()); // 生成二维码 bi = productBarcode.createBarcode(strBarCode); outputStream = new ByteArrayOutputStream(); ImageIO.write(bi, "jpg", outputStream); BASE64Encoder encoder = new BASE64Encoder(); // System.err.println(encoder.encode(outputStream.toByteArray())); return encoder.encode(outputStream.toByteArray()); } catch (Exception e) { e.printStackTrace(); return "encodeError"; } } /** * 商品条形码 * @param strBarCode * 商品条形码:13位 * @param dimension * 商品条形码:尺寸 * @param barheight * 商品条形码:高度 * @return 图片(Base64编码) */ public static String generateBarCode(String strBarCode,String dimension,String barheight) { // isNumeric 是否是数值 // 校验。。。。。 try { ByteArrayOutputStream outputStream = null; BufferedImage bi = null; int len = strBarCode.length(); JBarcode productBarcode = new JBarcode(EAN13Encoder.getInstance(), WidthCodedPainter.getInstance(), EAN13TextPainter.getInstance()); String barCode = strBarCode.substring(0, len - 1); String code = strBarCode.substring(len - 1, len); //校验13位 String checkCode = productBarcode.calcCheckSum(barCode); if (!code.equals(checkCode)) { return "checkCodeError"; } // 尺寸,面积,大小 productBarcode.setXDimension(Double.valueOf(dimension).doubleValue()); // 高度 10.0 = 1cm 默认1.5cm productBarcode.setBarHeight(Double.valueOf(barheight).doubleValue()); // 宽度 productBarcode.setWideRatio(Double.valueOf(25).doubleValue()); // 是否校验13位,默认false productBarcode.setShowCheckDigit(true); //显示字符串内容中是否显示检查码内容 // productBarcode.setShowCheckDigit(true); // 生成二维码 bi = productBarcode.createBarcode(barCode); outputStream = new ByteArrayOutputStream(); ImageIO.write(bi, "jpg", outputStream); BASE64Encoder encoder = new BASE64Encoder(); // System.err.println(encoder.encode(outputStream.toByteArray())); return encoder.encode(outputStream.toByteArray()); } catch (Exception e) { e.printStackTrace(); return "encodeError"; } } /** * @param args * @throws InvalidAtributeException */ public static void main(String[] args) throws InvalidAtributeException { //String encode = BarcodeUtil.generateBarCode("6936983800013","0.5","30"); String encode2 = BarcodeUtil.generateBarCode128("69369833450938430579753045230800013","0.5","30"); //System.out.println(encode); System.out.println(encode2); } }
JAR包见附件。
相关推荐
二维码、条形码生成工具类(java),根据内容转换成二维码或者条形码并输出图片
java实现条形码二维码生成含文字标签信息
java生成二维码和条形码(一维码),每个工具类自带main方法,改一下包名和生成路径即可测试。本人使用SpringBoot开发,打包上传的资源
Java生成条形码的方案 -- barcode4j、zxing barcode4j开源Java条形码生成库。支持多种编码格式,比如:code-39,code-128等 http://barcode4j.sourceforge.net/ zxing是由google开源的1D/2D编解码类库。目标是能够对...
BarCodeUtil:条形码操作工具类,包括生成和读取 CorsConfig:服务端防止跨域请求公共设置 DateUtil:时间处理工具类 DBConnection:jdbc工具类 FileOperater:文件处理工具类 包括 读取文本文件,写出文本文件...
ems 顺丰条码 工具类
条形码工具类和生成二维码和二维码工具类 引用io的方法,根据输入的文字,生成想要的大小的条形码和二维码
D:\002 我的工具类\022 生成条形码,二维码图片\ZxingTool.java D:\002 我的工具类\023 Java获取Linux系统cpu使用率 D:\002 我的工具类\023 Java获取Linux系统cpu使用率\OSUtils.java D:\002 我的工具类\024 Java对...
ASBarcode 类 为产生条形码的工具类 DrawImage 类 修改图片的工具类 DrawImageModel 类修改图片的模型类
这个资源中提供了两个java生成二维码的方式:日本QRCODE方式和谷歌的zxing方式,其中qrcode方式生成的二维码能兼容更多的扫码工具。(工具类 + jar 包)
内含 C#编写的“条形码生成类”源码 和 调用类 编写的条形码生成工具源码。简单实用,一看就懂。
使用google开源zxing工具自己整理的二维码和条形码成功和解析代码, 新增加了生成带logo小图片的彩色二维码例子。 附加图片: 把img下面的图片放到c盘下做测试用
可以生成PDF417条码的JAVA包,里面包含经过反编译的 文件以及原始文件.
Android开发人员不得不收集的工具类集合 | 支付宝支付 | 微信支付(统一下单) | 微信分享 | Zip4j压缩(支持分卷压缩与加密) | 一键集成UCrop选择圆形头像 | 一键集成二维码和条形码的扫描与生成 | 常用Dialog | ...
二维码与条形码是购物、下载、分享、娱乐和专业制作二维码与条形码的必备神器,如果你是一个爱应用、享生活、懂品位的年轻人,那二维码与条形码最适合你!(1)无需切换,智能扫码:无需切换条形码与二维码,自动...
本次经验带来的是我经常会做到的就是条形码,可能我用的条形码并非今天说的这类,不过原理都差不多,这次主要是利用Excel来制作条形码,能够实现自动更新的条形码,同时说一下打印的相关问题,接下来,我们就开始...
java条形码生成工具类,方便生成条形码保存在相应路径
很好的条形码生成插件,导入两个包完后,里面有配置文件的说明,和参数的说明
Java 原生库生成Code128C编码的条形码的工具类,根据http://blog.csdn.net/susu_139/article/details/41008433整理而成
该工具类目前比较简单,只是实现了普通二维码、logo二维码、彩色二维码和二维码条形码解析几个功能。 根据此工具类可扩展生成LOGO+文字的二维码,暂时不需要没有封装。