Java条形码的生成和扫描

前言

Free Spire.Barcode for Java 是 Spire.Barcode for Java 的免费产品。Free Spire.Barcode for Java 是一款基于 Java 语言开发的,免费的专门对条形码进行操作的类库。适用于商业或个人用途。这款产品的主要功能在于帮助开发人员轻松快捷高效地生成、读取和扫描一维条码和二维条码。
使用工具:free spire.barcode for java 5.11(免费版)
下载地址

https://www.e-iceblue.cn/Downloads/Free-Spire-Barcode-JAVA.html

使用步骤

jar包文件导入:

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

step 1: 下载jar包之后解压,进入“project structure” 界面。
在这里插入图片描述

在这里插入图片描述
选择刚下载好的jar文件路径

C:\Users\xiang\Desktop\Spire.Barcode_5.1.0\lib

方式二:maven项目导入
在项目pom文件中加入:

<repositories>
    <repository>
        <id>com.e-iceblue</id>
        <name>e-iceblue</name>
        <url>https://repo.e-iceblue.cn/repository/maven-public/</url>
    </repository>
</repositories>

  <dependencies>
    <dependency>
        <groupId>e-iceblue</groupId>
        <artifactId>spire.barcode.free</artifactId>
        <version>5.1.1</version>
    </dependency>
</dependencies>

BarCode生成:

生成条形码涉及到两个重要的类,一个是BarcodeSettings,另一个是BarCodeGenerator。BarcodeSettings是用来定制条形码的特定类型,数据,大小,颜色等。BarCodeGenerator以BarcodeSettings为基础,用来创建图像数据。

CodeBar.class

package com.example.code_scan_demo.CodeType;

import com.spire.barcode.BarCodeGenerator;
import com.spire.barcode.BarCodeType;
import com.spire.barcode.BarcodeSettings;
import com.spire.barcode.CodabarChar;
import org.springframework.util.ResourceUtils;

import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileNotFoundException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.UUID;

/**
 * @author xiang
 * @date 2023年03月31日 13:07
 * @description :TODO
 */

public class CodeBar {

    private static SimpleDateFormat format = new SimpleDateFormat("yyyyMMdd");
    private static String TEMP_SPACE;
    //条码存储路径
    static {
        try {
            TEMP_SPACE = ResourceUtils.getURL(ResourceUtils.CLASSPATH_URL_PREFIX).getPath() + "static";
        } catch (FileNotFoundException e) {
            System.out.println("classpath路径未找到,涉及的条形码相关功能无法正常完成");
        }
    }
    public static void main(String[] args) throws Exception {
        initTempSpace();

//创建barcodesettings实例

       BarcodeSettings settings = new BarcodeSettings();

//设置条形码数据

        settings.setData("12345678");

//设置符号属性

        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();

//保存图像

        File file =new File(TEMP_SPACE + File.separator
                + format.format(new Date())
                + "-"
                + UUID.randomUUID().toString().replaceAll("-", "")
                + ".png");
        ImageIO.write(bufferedimage,"png",file);

    }

    /**
     * 创建条码存储的问价夹
     */
    private static void initTempSpace(){
        File file = new File(TEMP_SPACE);
        if (!file.exists()){
            boolean mkdir = file.mkdir();
            if (mkdir){
                System.out.println("文件夹创建成功:" + TEMP_SPACE);
            }else {
                System.out.println("文件夹创建失败:" + TEMP_SPACE);
            }
        }
    }

}


结果如图
在这里插入图片描述
要生成其他类型条码,仅需修改
在这里插入图片描述

Free Spire.Barcode for JAVA 支持的 Barcode 类型:
在这里插入图片描述
在这里插入图片描述

QR_Code:
在这里插入图片描述
Code_128:
在这里插入图片描述
EAN_13:
在这里插入图片描述

条码解析

CodeScan.class

package com.example.code_scan_demo.scan;

import com.spire.barcode.BarcodeScanner;
import org.springframework.util.ResourceUtils;

import java.io.File;

/**
 * @author xiang
 * @date 2023年03月31日 13:28
 * @description :TODO
 */

public class ScanCode {
    public static void main(String[] args) throws Exception {
        //条码路径
        String path= ResourceUtils.getURL(ResourceUtils.CLASSPATH_URL_PREFIX).getPath() + "static".toString();
        System.out.println(path);
        File file=new File(path);
        //该文件夹下的所有文件集合
        File[] list=file.listFiles();
        String[] s=new String[100];
        for(int i=0;i<list.length;i++){
            //System.out.println(path+"/"+list[i].getName());
             String[] ss= BarcodeScanner.scan(path+"/"+list[i].getName());
            //从要扫描的图像中获取信息
             for(int j=0;j<ss.length;j++){
                 System.out.println(ss[j]);
             }
        }



    }
}

在这里插入图片描述

  • 1
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spire.Barcode for JAVA 是一款Java条形码组件,开发人员可以使用它在Java应用程序中简洁快速地生成和识别多种一维和二维条码。下载以后解压缩,然后从lib文件夹下导入Spire.Barcode.jar包到你的Java应用程序中即可。 支持的条码类型 Spire.Barcode for JAVA支持的条码类型多达38种,包括常见的QR Code、Code 25、 CodeBar、Code 39、Code 93、Code 128、PDF 417、Data Matrix、 EAN 13、EAN 128等。 生成QR Code代码示例 package GenerateBarcode; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; import javax.imageio.ImageIO; import com.spire.barcode.BarCodeGenerator; import com.spire.barcode.BarCodeType; import com.spire.barcode.BarcodeSettings; import com.spire.barcode.QRCodeECL; import com.sun.javafx.print.Units; public class QR_Code { public static void main(String[] args) throws IOException { //create an instance of BarcodeSetteings BarcodeSettings settings = new BarcodeSettings(); //set barcode type settings.setType(BarCodeType.QR_CODE); //set barcode data settings.setData("ABC 123456789"); //set dispaly text settings.setData2D("ABC 123456789"); //show text on bottom settings.setShowTextOnBottom(true); //set the border invisible settings.hasBorder(false); //set width of the barcode module settings.setX(2); //set the error correction level settings.setQRCodeECL(QRCodeECL.M); //create BarCodeGenerator object based on settings BarCodeGenerator barCodeGenerator = new BarCodeGenerator(settings); //generate image data and store in BufferedImage instance BufferedImage bufferedImage = barCodeGenerator.generateImage(); //save to image ImageIO.write(bufferedImage,"png",new File("QR_CODE.png")); System.out.println("Complete!"); } }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值