声明:转载为个人学习收藏,如有侵权,请及时联系本人删除,转载地址:https://www.cnblogs.com/MariaWang/p/10837641.html

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

所需工具:

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”;④ 导入完成。如下图:

下面是免费版本支持的条形码类型列表:

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 生成条形码_JAVA 生成扫描条形码相关推荐

  1. java 自动生成条形码_JAVA生成商品条形码

    1.[代码][Java]代码 /* 2. * To change this template, choose Tools | Templates 3. * and open the template ...

  2. java描绘条形码_java生成条形码工具类

    /** * 静态内部类 * 自定义的 TextPainter, 允许定义字体,大小,文本等 * 参考底层实现:BaseLineTextPainter.getInstance() */ protecte ...

  3. java条码大小_java - ML Kit条形码扫描:无效的图像数据大小

    我想在捕获的图像中检测条形码.我使用android的camera2捕获图像.此后,将检索图像的元数据并将图像保存到设备.元数据全部传递到下一个活动,该活动是应用程序尝试检测条形码的地方. 下一个活动是 ...

  4. java生成条码_Java生成商品条形码

    之前没有使用过这个,现在使用JBarcode生成商品条形码,工作之前的准备工作: Eclipse: Eclipse Java EE IDE for Web Developers. Version: H ...

  5. java给定任意_java生成任意整数随机数(任意指定范围)

    Math.random() jdk1.8文档描述: 1.求:范围为 [ 0 ,352324 ] 之间的随机数.(包括临界值) (int)( Math.random () * ( 352324 +1) ...

  6. java 单开程序_java生成jar包并且单进程运行的实例

    java文件打包jar运行 有效步骤: 1.cmd 到当前目录(默认包主类所在目录为例) set classpath = 默认包主类所在目录 2.javac 主类名.java 3.java 主类名 4 ...

  7. java生成密码_java生成密码生成 | 学步园

    一.根据当前日期生成MD5加密密码 package com.test; import java.security.MessageDigest; import java.text.SimpleDateF ...

  8. java随机姓名_Java生成随机姓名、性别和年龄的实现示例

    一.定义实体类Person,封装生成的数据 package net.dc.test; public class Person { private String name; private String ...

  9. java 日期随机数_Java 生成指定时间范围的随机时间、随机中文姓名、随机字符姓名、随机数...

    解决问题: Java生成指定时间范围的随机时间? Java生成随机中文姓名? Java生成随机字符姓名? Java生成随机数? 代码: import java.io.UnsupportedEncodi ...

  10. java 生成随机数_Java 生成随机数的 N 种方法

    原标题:Java 生成随机数的 N 种方法 www.baeldung.com/java-generating-random-numbers 1.引言 本文将探讨用 Java 生成随机数的不同方法. 2 ...

最新文章

  1. 收藏 | 深度学习损失函数大全(附代码实现)
  2. nutch2.1+mysql报错及解决
  3. Python实现奖金计算两种方法的比较
  4. 【洛谷】【动态规划+单调队列】P1725 琪露诺
  5. Sysnoise5.6安装教程
  6. Anaconda日志
  7. 启动盘Linux windows,Linux 中创建 USB 启动盘来拯救 Windows 用户
  8. java程序a-z b-y,请完成下列Java程序:对大写的26个英文字母加密,从键盘输入一个大写字母串,输出这个串加密后的结 - 赏学吧...
  9. 从网络到分布式-负载均衡
  10. Java进阶:SpringMVC数据请求全局过滤器
  11. 记事本如何运行python代码_记事本写代码怎么运行
  12. solidworks钣金件设计术语creo/ug适用
  13. python机器学习 | 朴素贝叶斯算法介绍及实现
  14. docker常用命令network篇
  15. jQuery获取兄弟元素
  16. 网络流24题 最小路径覆盖(DCOJ8002)
  17. DeepMind AlphaStar星际争霸2首秀:Demo很强大,但现场比赛输了
  18. 未来的计算机小报,未来科技生活手抄报图片实用美观
  19. 怎么将mov格式的视频转换成MP4?
  20. Mysql数据库和navicat

热门文章

  1. 最新的省市区三级地区MySQL数据库,附带获取方法
  2. 解决eclipse安装Darkest Dark Theme报错
  3. 小米蓝牙耳机不能串联问题解决
  4. Science子刊:母亲的身体气味增强了婴儿和成人的脑-脑同步
  5. Minecraft 1.18.1、1.18.2模组开发 12.动态物品材质
  6. 百旺如何看是否清卡_百旺税控盘会自动清卡吗
  7. 卡诺模型案例分析_需求分析神器 | 如何用卡诺模型分析需求
  8. CodeForce Round#49 untitled (Hdu 5339)
  9. 【计算几何各种小模板总结贴】[不定期更新]
  10. 如何使用C4D的反射通道创建一个金属外观?