关于【zxing】,barcode条形码,今天涌涌小编给您分享一下,如果对您有所帮助别忘了关注本站哦。
在网上查阅资料,归纳整理了两款处理条码、二维码的开源Java类库:
Barcode4jZXingbarcode4j 已经不再维护了,最新的版本是在2012发布的。ZXing,大名鼎鼎、久负盛名。
条码类型说明:UPC-A类型:国际商品条码。共 12 位数字组成,最后一位是校验码,根据前 11 位数字计算得出,相当于数字0开头的EAN-13码。主要为美国和加拿大使用。而UPC-E类型是其缩短的一种形式。
EAN-13类型:国际商品条码。是当今世界上使用最广的商品条码。共 13 位数字组成,最后一位是校验码,根据前 12 位数字计算得出。是当今世界上广为使用的商品条码,已成为电子数据交换(EDI)的基础。而EAN-8类型是其缩短的一种形式。
Code 39类型:是一种条、空均表示信息的非连续型条码,它可表示数字0-9、字母A-Z和八个控制字符(-、空格、/、$、 、%、·、*)等44个字符,主要用于工业、图书及票证的自动化管理,目前使用极为广泛。而Code 39 Extended是39码的全ASCII形式。使用2个字符可以将128个ASCII全部字符集进行编码。
Code 128类型:对全部128个字符进行编码。通过起始字符选择不同的代码集。A\B\C代表不同的数据范围,A:大写字母 数字,B:大小写字母 数字,C:为偶数纯数字编码,而Auto是根据数据自动选择起始符进行最短编码。UCC/EAN是在Code 128的基础上扩展的应用标识条码、能标识贸易单元中需表示的信息,如产品批号、数量、生产日期等。SCC和SSCC 为细分的AI标识符条码。
ITF-14类型:是Interleaved 2 of 5 类型的一种规范应用,条形码长度没有限制,用5个黑条和5个白条表示2位数字。比其它的 2 of 5 相比密度要高,但是数据必须为偶位数。条码四周的边框为支撑条,其作用为保护条码的识别区域。多使用于UPC标准物流符号及日本的标准物流符号等包装箱印刷中。
二维码类型说明我的工作经历中,二维码只使用过QR Code,其他几种之前甚至都没有听说过,所以这里不做说明。
QR CODE类型:是由日本Denso公司于1994年9月研制并对全球免费授权使用,是一种矩阵式二维符号编码,信息容量大、可靠性高、可表示多种文字及汉字信息、保密防伪性强等优点。在我国使用率很高,微信和支付宝的收款码都是采用QR类型,在企业溯源查询方面应用也很广,多使用网址链接做跳转查询真伪。
ZXingZXing简介ZXing是Google开发的一个开源Java类库,能够处理多种格式的条码、二维码。
支持的格式条码(商品)
条码(工业)
二维码
UPC-A
Code 39
QR Code
UPC-E
Code 93
Data Matrix
EAN-8
Code 128
Aztec
EAN-13
Codabar
PDF 417
UPC/EAN Extension
ITF
MaxiCode
RSS-14
RSS-Expanded
生成条形码的代码实现// 条码内容String content = "6935387130023";// 条码图片文件名称String imageName = "条码.png";// 条码图片宽度int imageWidth = 70;// 条码图片高度int imageHeight = 25;// 条码配置信息MatrixToImageConfig matrixToImageConfig = new MatrixToImageConfig(0xFF000000, 0xFFFFFFFF);// 生成条码时的一些配置信息Map<EncodeHintType, Object> hints = new HashMap<>();// 设置条码两边空白边距hints.put(EncodeHintType.MARGIN, 1);// 设置字符编码格式hints.put(EncodeHintType.CHARACTER_SET, "utf-8");// 生成条码EAN13Writer writer = new EAN13Writer();BitMatrix bitMatrix = writer.encode(content, BarcodeFormat.EAN_13, imageWidth, imageHeight, hints);// 保存条码MatrixToImageWriter.writeToPath(bitMatrix, "PNG", Paths.get(imageName), matrixToImageConfig);
这里是以EAN-13类型的条码为例,如果想要生成其它类型的条码,只需要将EAN13Writer和BarcodeFormat.EAN_13替换成对应的Writer和类型就好。
生成二维码的代码实现// 二维码内容String content = "Hello World.";// 二维码图片文件名称String imageName = "qrcode.png";// 二维码图片宽度int imageWidth = 300;// 二维码图片高度int imageHeight = 300;// 二维码配置参数MatrixToImageConfig matrixToImageConfig = new MatrixToImageConfig(0xFF002FA7, 0xFFFFFFFF);Map<EncodeHintType, Object> hints = new HashMap<>();// 设置二维码空白边距为0hints.put(EncodeHintType.MARGIN, 0);hints.put(EncodeHintType.CHARACTER_SET, "utf-8");// 生成二维码QRCodeWriter qrCodeWriter = new QRCodeWriter();BitMatrix bitMatrix = qrCodeWriter.encode(content, BarcodeFormat.QR_CODE, imageWidth, imageHeight, hints);// 保存二维码MatrixToImageWriter.writeToPath(bitMatrix, "PNG", Paths.get(imageName), matrixToImageConfig);
生成的二维码可以自定义颜色,这还可以。但是如果想要生成中间有图片的二维码,在网上找的资料的实现方式,我感觉都不是很好。
生成中间带Logo图片的二维码,查的资料的实现思路大体都是先生成二维码,然后把Logo图片缩放到一定尺寸放在二维码的中间。这种实现方式不美观、优雅。
话说,生成比较好看的二维码,后端代码实现,你有比较好的方案吗?
生成二维码,前端也有实现方案。这是之前笔者写的使用前端开源框架生成二维码的文章:使用vue-qr生成个性化的二维码,有兴趣的可以看下。
Barcode4jBarcode4j简介Barcode4j是一个Java开源的条形码类库,也能够生成几种类型的二维码,比如DataMatrix和PDF417,提供了多种输出格式。
支持的格式条码(商品)
条码(工业)
二维码
UPC-A
Code 39
QR Code
UPC-E
Code 128
Data Matrix
UPC-S
Codabar
PDF 417
EAN-8
EAN-128
EAN-13
代码实现String barcodeText = "978020137963";String FileName = "条码.png";EAN13Bean generator = new EAN13Bean();BitmapCanvasProvider canvas = new BitmapCanvasProvider(160, BufferedImage.TYPE_BYTE_BINARY, false, 0);generator.generateBarcode(canvas, barcodeText);BufferedImage bufferedImage = canvas.getBufferedImage();ImgUtil.write(bufferedImage, Paths.get(fileName).toFile());
BitmapCanvasProvider构造方法参数说明:
本文关键词:Barcode条形码生成器,bartender条形码,条形码代码,barcode生成条形码,barcode条码生成器。这就是关于《zxing,barcode条形码》的所有内容,希望对您能有所帮助!