当前位置:首页 > Java

java如何生成条形码

2026-03-04 02:44:28Java

Java生成条形码的方法

使用ZXing库生成条形码

ZXing(Zebra Crossing)是一个开源的条形码处理库,支持多种条形码格式(如Code 128、QR Code等)。以下是生成Code 128条形码的示例代码:

import com.google.zxing.BarcodeFormat;
import com.google.zxing.EncodeHintType;
import com.google.zxing.WriterException;
import com.google.zxing.common.BitMatrix;
import com.google.zxing.oned.Code128Writer;
import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;

public class BarcodeGenerator {
    public static void generateBarcode(String data, String filePath, int width, int height) throws WriterException, IOException {
        Map<EncodeHintType, Object> hints = new HashMap<>();
        hints.put(EncodeHintType.MARGIN, 1);

        Code128Writer writer = new Code128Writer();
        BitMatrix bitMatrix = writer.encode(data, BarcodeFormat.CODE_128, width, height, hints);

        BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
        for (int x = 0; x < width; x++) {
            for (int y = 0; y < height; y++) {
                image.setRGB(x, y, bitMatrix.get(x, y) ? 0x000000 : 0xFFFFFF);
            }
        }

        ImageIO.write(image, "png", new File(filePath));
    }

    public static void main(String[] args) {
        try {
            generateBarcode("123456789", "barcode.png", 300, 100);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

使用Barbecue库生成条形码

Barbecue是另一个Java条形码生成库,使用更简单:

java如何生成条形码

import net.sourceforge.barbecue.Barcode;
import net.sourceforge.barbecue.BarcodeFactory;
import net.sourceforge.barbecue.BarcodeImageHandler;
import java.io.File;

public class BarcodeGenerator {
    public static void main(String[] args) throws Exception {
        Barcode barcode = BarcodeFactory.createCode128("123456789");
        barcode.setBarWidth(2);
        barcode.setBarHeight(50);

        File imgFile = new File("barcode.png");
        BarcodeImageHandler.savePNG(barcode, imgFile);
    }
}

生成条形码的注意事项

条形码内容应符合目标格式规范。例如Code 128支持ASCII字符,但某些特殊字符可能需要转义。

java如何生成条形码

生成的图片分辨率需足够高以确保扫描设备可识别,通常宽度至少为条形码宽度的1.5倍。

对于商业应用,建议添加校验位以提高数据可靠性,多数库会自动处理校验位计算。

两种库各有优势:ZXing支持更多格式且更新更活跃,Barbecue的API更简洁但维护较少。根据项目需求选择合适的工具。

标签: 条形码java
分享给朋友:

相关文章

如何运行java程序

如何运行java程序

编写Java代码 创建一个以.java为扩展名的文件,例如HelloWorld.java。文件内容需包含一个类定义,类名必须与文件名一致。例如: public class HelloWorld {…

java如何上传文件

java如何上传文件

使用HttpURLConnection上传文件 在Java中,可以通过HttpURLConnection实现文件上传功能。需要设置请求头为multipart/form-data,并构建包含文件数据的请…

java如何创建数组

java如何创建数组

创建数组的基本方法 在Java中,数组是固定大小的同类型元素集合。创建数组需要声明数组类型并初始化。 声明数组 语法格式为 数据类型[] 数组名 或 数据类型 数组名[]: int[] arr1;…

如何搭建java开发环境

如何搭建java开发环境

下载并安装JDK 从Oracle官网或OpenJDK下载适合操作系统的JDK版本。运行安装程序并按照提示完成安装,建议选择默认路径以减少配置复杂度。 配置环境变量 在系统环境变量中添加JAVA_HO…

java如何实现多继承

java如何实现多继承

在Java中,由于语言设计本身不支持多继承(即一个类不能直接继承多个父类),但可以通过以下方式间接实现类似多继承的效果: 使用接口实现多继承 接口允许一个类实现多个接口,从而继承多个抽象行为。接口中…

如何导入java项目

如何导入java项目

导入Java项目的方法 使用IDE导入(如IntelliJ IDEA或Eclipse) 打开IDE后选择导入现有项目,导航至项目根目录(包含pom.xml或build.gradle的文件位置)。IDE…