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