zoukankan      html  css  js  c++  java
  • JAVA 生成扫描条形码

    声明:转载为个人学习收藏,如有侵权,请及时联系本人删除,转载地址: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:

    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]);
            }
        }
    }
    

      运行效果:

     

  • 相关阅读:
    Ubuntu16.04下同时安装Anaconda2与Anaconda3
    ansible 常用模块
    docker 笔记 (7) 限制容器
    linux 磁盘
    docker 笔记 (6)搭建本地registry
    docker 笔记 (5)常用命令
    docker 笔记(4) Dockerfile 常用的指令
    NGINX下配置CACHE-CONTROL
    mysql二进制安装
    [Selenium] Explicit wait 方法
  • 原文地址:https://www.cnblogs.com/Big-Boss/p/10951274.html
Copyright © 2011-2022 走看看