JAVA实现多种类型条形码的生成与扫描
Posted mariawang
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JAVA实现多种类型条形码的生成与扫描相关的知识,希望对你有一定的参考价值。
简介:条形码是一种可视化、机器可读的数据,这些数据通常描述了携带该条码的物品的相关信息。条形码已经广泛被应用在商品流通,图书管理,邮政管理和银行系统等领域。在这篇文章中,将介绍如何生成和扫描一些常见的一维和二维条形码。
所需工具:
Free Spire.Barcode for Java
Intellij IDEA
下面是免费版本支持的条形码类型列表:
条形码类型 |
生成 |
扫描 |
CODABAR |
√ |
√ |
CODE_11 |
√ |
√ |
CODE_39 |
√ |
√ |
CODE_39_EXTENDED |
√ |
√ |
CODE_93 |
√ |
√ |
CODE_93_EXTENDED |
√ |
√ |
CODE_128 |
√ |
√ |
EAN_8 |
√ |
√ |
EAN_13 |
√ |
√ |
EAN_128 |
√ |
χ |
EAN_14 |
√ |
√ |
SCC_14 |
√ |
√ |
POST_NET |
√ |
χ |
QR_CODE |
√ |
χ |
P.S. 想要更多条形码类型,请参考使用Spire.Barcode for Java 商业版。
Barcode生成:
生成条形码涉及到两个重要的类,一个是BarcodeSettings,另一个是BarcodeCenerator。BarcodeSettings是用来定制条形码的特定类型,数据,大小,颜色等。BarcodeCenerator以BarcodeSettings为基础,用来创建图像数据。上表所支持的部分条形码的生成如下所示:
Codebar:
public class CODABAR { public static void main(String[] args) throws Exception { //创建BarcodeSettings实例 BarcodeSettings settings = new BarcodeSettings(); //设置条形码数据 settings.setData("2030405060"); //设置符号属性 settings.setType(BarCodeType.CODABAR); //设置底部显示文本 settings.setShowTextOnBottom(true); //设置边框可见 settings.hasBorder(true); //设置CodabarStartChar和CodabarStopChar settings.setCodabarStartChar(CodabarChar.B); settings.setCodabarStopChar(CodabarChar.D); //创建条形码生成器对象 BarCodeGenerator barCodeGenerator = new BarCodeGenerator(settings); //从条形码生成器中获取图像 BufferedImage bufferedImage = barCodeGenerator.generateImage(); //保存图像 ImageIO.write(bufferedImage,"png",new File("CODABAR.png")); } }
运行效果:
Code11:
public class CODE_11 { public static void main(String[] args) throws IOException { //创建BarcodeSettings实例 BarcodeSettings settings = new BarcodeSettings(); //设置条形码数据 settings.setData("12345-67890"); //设置符号属性 settings.setType(BarCodeType.CODE_11); //设置底部文本 settings.setShowTextOnBottom(true); //设置边框可见 settings.hasBorder(true); //创建条码生成器对象 BarCodeGenerator barCodeGenerator = new BarCodeGenerator(settings); //从条码生成期中获取图像 BufferedImage bufferedImage = barCodeGenerator.generateImage(); //保存图像 ImageIO.write(bufferedImage,"png",new File("CODE_11.png")); } }
运行效果:
Code 39:
public static void main(String[] args) throws IOException { //创建BarcodeSettings BarcodeSettings settings = new BarcodeSettings(); //设置条形码数据 settings.setData("ABC 123456789"); //设置符号属性 settings.setType(BarCodeType.CODE_39); //在底部设置显示文本位置 settings.setShowTextOnBottom(true); //设置边框可见 settings.hasBorder(true); //创建条形码生成器实例 BarCodeGenerator barCodeGenerator = new BarCodeGenerator(settings); //从条形码生成器中获取图像 BufferedImage bufferedImage = barCodeGenerator.generateImage(); //保存图像 ImageIO.write(bufferedImage,"png",new File("CODE_39.png")); }
运行效果:
Code 128:
public class CODE_128 { public static void main(String[] args) throws IOException { //创建BarcodeSettings BarcodeSettings settings = new BarcodeSettings(); //设置条形码数据 settings.setData("ABCD 12345 abcd"); //设置符号属性 settings.setType(BarCodeType.CODE_128); //在底部设置显示文本位置 settings.setShowTextOnBottom(true); //设置边界可见 settings.hasBorder(true); //创建条形码生成器实例 BarCodeGenerator barCodeGenerator = new BarCodeGenerator(settings); //从条形码生成器获取图像 BufferedImage bufferedImage = barCodeGenerator.generateImage(); //保存图像 ImageIO.write(bufferedImage,"png",new File("CODE_128.png")); }
运行效果
QR_Code:
public class QR_CODE { public static void main(String[] args) throws IOException { //创建BarcodeSettings BarcodeSettings settings = new BarcodeSettings(); //设置条形码数据 settings.setData("ABC 123456789"); //设置符号属性 settings.setType(BarCodeType.QR_CODE); //在底部设置ShowText位置 settings.setShowTextOnBottom(true); //设置边框是可见的 settings.hasBorder(true); //创建BarCodeGenerator实例 BarCodeGenerator barCodeGenerator = new BarCodeGenerator(settings); //从条形码生成器获取图像 BufferedImage bufferedImage = barCodeGenerator.generateImage(); //保存图像 ImageIO.write(bufferedImage,"png",new File("QR_CODE.png")); } }
运行效果:
Barcode扫描:
下面我们将尝试将将几个条形码的合集放在一起扫描,使用BarcodeScanner 类的scan()方法读取多个条形码数据。图像和代码如下所示:
public class Scan { public static void main(String[] args) throws Exception { //从要扫描的图像中获取信息 String[] s= BarcodeScanner.scan("C:\\\\Users\\\\Administrator\\\\Desktop\\\\Barcode.png"); for (int i=0;i< s.length ;i++){ System.out.println(s[i]); } } }
运行效果:
以上是关于JAVA实现多种类型条形码的生成与扫描的主要内容,如果未能解决你的问题,请参考以下文章