JAVA如何生成扫描条形码二维码?

JAVA如何生成扫描条形码二维码?

简介

条形码是一种可视化、机器可读的数据,这些数据通常描述了携带该条码的物品的相关信息。条形码已经广泛被应用在商品流通,图书管理,邮政管理和银行系统等领域。在这篇文章中,将介绍如何生成和扫描一些常见的一维和二维条形码。

代码部分

所需工具:

  • Free Spire.Barcode for Java 1.3(免费版)

  • Intellij IDEA

Jar包文件导入:

  • 方式(一):首先,官网获取jar包

**Step 1:**下载Jar包之后解压,进入“Project Structure” 界面。(以下是三种在IDEA中快速打开Project Structure界面的方式,可任意选择一种方式)

在这里插入图片描述

**Step 2:**按以下操作步骤进行导入。

① 选择“Modules”—“Dependencies”,添加外置jar包;② 进入"Attach File or Directories"界面选择jar文件路径,然后点击“OK”;③ 勾选jar路径选项,点击”OK”/”Apply”;④ 导入完成。如下图:
在这里插入图片描述

  • 方式(二):使用Maven配置导包。可参考导入方法(http://www.e-iceblue.cn/licensing/install-spirepdf-for-java-from-maven-repository.htm)。

下面是免费版本支持的条形码类型列表:
在这里插入图片描述
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]);
 }
 }
}

运行效果:

*[HTML]:   超文本标记语言

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值