声明:转载为个人学习收藏,如有侵权,请及时联系本人删除,转载地址: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”;④ 导入完成。如下图:

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

P.S. 更多条形码类型,请参考使用Spire.Barcode for Java 商业版。

Barcode生成:

生成条形码涉及到两个重要的类,一个是BarcodeSettings,另一个是BarcodeCenerator。BarcodeSettings是用来定制条形码的特定类型,数据,大小,颜色等。BarcodeCenerator以BarcodeSettings为基础,用来创建图像数据。上表所支持的部分条形码的生成如下所示:

Codebar:

  1. public class CODABAR {
  2.  
  3. public static void main(String[] args) throws Exception {
  4. //创建BarcodeSettings实例
  5. BarcodeSettings settings = new BarcodeSettings();
  6. //设置条形码数据
  7. settings.setData("2030405060");
  8. //设置符号属性
  9. settings.setType(BarCodeType.CODABAR);
  10. //设置底部显示文本
  11. settings.setShowTextOnBottom(true);
  12. //设置边框可见
  13. settings.hasBorder(true);
  14. //设置CodabarStartChar和CodabarStopChar
  15. settings.setCodabarStartChar(CodabarChar.B);
  16. settings.setCodabarStopChar(CodabarChar.D);
  17. //创建条形码生成器对象
  18. BarCodeGenerator barCodeGenerator = new BarCodeGenerator(settings);
  19. //从条形码生成器中获取图像
  20. BufferedImage bufferedImage = barCodeGenerator.generateImage();
  21. //保存图像
  22. ImageIO.write(bufferedImage,"png",new File("CODABAR.png"));
  23. }
  24. }

  运行效果:

Code11:

  1. public class CODE_11 {
  2.  
  3. public static void main(String[] args) throws IOException {
  4. //创建BarcodeSettings实例
  5. BarcodeSettings settings = new BarcodeSettings();
  6. //设置条形码数据
  7. settings.setData("12345-67890");
  8. //设置符号属性
  9. settings.setType(BarCodeType.CODE_11);
  10. //设置底部文本
  11. settings.setShowTextOnBottom(true);
  12. //设置边框可见
  13. settings.hasBorder(true);
  14. //创建条码生成器对象
  15. BarCodeGenerator barCodeGenerator = new BarCodeGenerator(settings);
  16. //从条码生成期中获取图像
  17. BufferedImage bufferedImage = barCodeGenerator.generateImage();
  18. //保存图像
  19. ImageIO.write(bufferedImage,"png",new File("CODE_11.png"));
  20. }
  21. }

  运行效果:

Code 39:

  1. public static void main(String[] args) throws IOException {
  2. //创建BarcodeSettings
  3. BarcodeSettings settings = new BarcodeSettings();
  4. //设置条形码数据
  5. settings.setData("ABC 123456789");
  6. //设置符号属性
  7. settings.setType(BarCodeType.CODE_39);
  8. //在底部设置显示文本位置
  9. settings.setShowTextOnBottom(true);
  10. //设置边框可见
  11. settings.hasBorder(true);
  12. //创建条形码生成器实例
  13. BarCodeGenerator barCodeGenerator = new BarCodeGenerator(settings);
  14. //从条形码生成器中获取图像
  15. BufferedImage bufferedImage = barCodeGenerator.generateImage();
  16. //保存图像
  17. ImageIO.write(bufferedImage,"png",new File("CODE_39.png"));
  18. }

  运行效果:

Code 128:

  1. public class CODE_128 {
  2.  
  3. public static void main(String[] args) throws IOException {
  4. //创建BarcodeSettings
  5. BarcodeSettings settings = new BarcodeSettings();
  6. //设置条形码数据
  7. settings.setData("ABCD 12345 abcd");
  8. //设置符号属性
  9. settings.setType(BarCodeType.CODE_128);
  10. //在底部设置显示文本位置
  11. settings.setShowTextOnBottom(true);
  12. //设置边界可见
  13. settings.hasBorder(true);
  14. //创建条形码生成器实例
  15. BarCodeGenerator barCodeGenerator = new BarCodeGenerator(settings);
  16. //从条形码生成器获取图像
  17. BufferedImage bufferedImage = barCodeGenerator.generateImage();
  18. //保存图像
  19. ImageIO.write(bufferedImage,"png",new File("CODE_128.png"));
  20. }

  运行效果

QR_Code:

  1. public class QR_CODE {
  2. public static void main(String[] args) throws IOException {
  3. //创建BarcodeSettings
  4. BarcodeSettings settings = new BarcodeSettings();
  5. //设置条形码数据
  6. settings.setData("ABC 123456789");
  7. //设置符号属性
  8. settings.setType(BarCodeType.QR_CODE);
  9. //在底部设置ShowText位置
  10. settings.setShowTextOnBottom(true);
  11. //设置边框是可见的
  12. settings.hasBorder(true);
  13. //创建BarCodeGenerator实例
  14. BarCodeGenerator barCodeGenerator = new BarCodeGenerator(settings);
  15. //从条形码生成器获取图像
  16. BufferedImage bufferedImage = barCodeGenerator.generateImage();
  17. //保存图像
  18. ImageIO.write(bufferedImage,"png",new File("QR_CODE.png"));
  19. }
  20. }

  运行效果:

Barcode扫描:

下面我们将尝试将将几个条形码的合集放在一起扫描,使用BarcodeScanner 类的scan()方法读取多个条形码数据。图像和代码如下所示:

  1. public class Scan {
  2. public static void main(String[] args) throws Exception {
  3. //从要扫描的图像中获取信息
  4. String[] s= BarcodeScanner.scan("C:\\Users\\Administrator\\Desktop\\Barcode.png");
  5. for (int i=0;i< s.length ;i++){
  6. System.out.println(s[i]);
  7. }
  8. }
  9. }

  运行效果:

JAVA 生成扫描条形码的更多相关文章

  1. JAVA生成扫描条形码

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

  2. Java生成各种条形码

    import java.awt.image.BufferedImage; import java.io.FileOutputStream; import org.jbarcode.JBarcode; ...

  3. Java生成读取条形码和二维码图片

    原文:http://www.open-open.com/code/view/1453520722495 package zxing; import com.google.zxing.BarcodeFo ...

  4. java生成128A条形码

    添加maven依赖 <dependency> <groupId>net.sf.barcode4j</groupId> <artifactId>barco ...

  5. Java生成扫描可以生成手机号名片的二维码

    (1)需求:用户通过扫描pc端网站后台管理系统的二维码获取对接人的相关信息,主要是是手机号信息,达到点击可以直接打电话或者将对接人的信息直接保存到通讯录 注:源码来源:https://blog.csd ...

  6. JAVA生成条形码

    1.下载生成条形码所需要的jar包barcode4j.jar: 2.java生成条形码代码 import java.awt.image.BufferedImage;import java.io.Fil ...

  7. Java 条形码生成(一维条形码)

    utl:http://mianhuaman.iteye.com/blog/1013945 在这里给大家介绍一个java 生成条形码 jbarcode.jar 生成条形码 支持EAN13, EAN8, ...

  8. android 二维码生成+扫描

    android 二维码生成+扫描 1.在Android应用当中,很多时候都要用到二维码扫描,来避免让用户手动输入的麻烦. Google官方自己推出了一个二维码开源项目:ZXing库. 2.这里简单介绍 ...

  9. 利用JAVA生成二维码

    本文章整理于慕课网的学习视频<JAVA生成二维码>,如果想看视频内容请移步慕课网. 维基百科上对于二维码的解释. 二维条码是指在一维条码的基础上扩展出另一维具有可读性的条码,使用黑白矩形图 ...

随机推荐

  1. Windows安装php Oracle扩展

    前言 去IOE的浪潮下,很多大型公司古董级的系统还在使用IOE设备.新东家有些年头的系统都是使用Oracle数据库,为了省事,新架构下的业务直接通过编程语言API操作Oracle数据库,安装相关扩展对 ...

  2. [LeetCode]Valid Sudoku解题记录

    这道题考查对二维数组的处理,哈希表. 1.最自然的方法就是分别看每一个数是否符合三个规则.所以就须要对应的数据结构来 记录这些信息,判定是否存在.显然最先想到用哈希表. 2.学会把问题抽象成一个个的子 ...

  3. java读取中文分词工具(一)

    import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.I ...

  4. IOS_OC_Category

    1.Category概述 那的Category的使用场景有那些呢: 1.类包括了非常多个方法实现,而这些方法须要不同团队的成员来实现 2.当你在使用基础类库中的类时,你不想继承这些类而仅仅想加入一些方 ...

  5. 多工程联编的Pods如何设置

    多工程联编的Pods如何设置 (2014-07-17 13:57:10) 转载▼ 标签: 联编 多工程 分类: iOS开发 如今,CocoaPods使用越来越多,几乎每个项目都会使用到.有时候我们的项 ...

  6. ORA-24247: 网络訪问被訪问控制列表 (ACL) 拒绝

     ORA-24247: 网络訪问被訪问控制列表 (ACL) 拒绝 注意:须要在system用户下使用命令 须要先使用 DBMS_NETWORK_ACL_ADMIN.CREATE_ACL 创建訪问控 ...

  7. 协同过滤算法中皮尔逊相关系数的计算 C++

    template <class T1, class T2>double Pearson(std::vector<T1> &inst1, std::vector<T ...

  8. 比较两个Json对象是否相等

    一个前端同事遇到的面试题,抽空写了写,也算是个积累 1.先准备三个工具方法,用于判断是否是对象类型,是否是数组,获取对象长度 function isObj(object) { return objec ...

  9. layui富文本编译器添加图片

    1.创建富文本编辑器 <form class="layui-form" method="post" id="myForm" encty ...

  10. LMS、NLMS最优步长理论分析与Speex回声消除可能的改进想法

    一.回声消除算法模型 先来分析下自适应回声消除的主要组成部分,大体上可以把回声消除模型分为两个部分 横向滤波器结构 滤波器系数自适应与步长控制 横向滤波器用脉冲响应w(n)[有的地方也称为回声路径]与 ...