当前位置:首页 > 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条形码生成库,使用更简单:

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字符,但某些特殊字符可能需要转义。

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

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

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

java如何生成条形码

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

相关文章

java如何创建文件

java如何创建文件

使用 File 类创建文件 通过 File 类的 createNewFile() 方法创建文件。此方法返回布尔值,表示文件是否成功创建。 import java.io.File; import ja…

如何运行java

如何运行java

运行Java程序的方法 安装Java开发工具包(JDK) 确保系统已安装JDK。可通过命令行输入 java -version 检查是否安装。若未安装,需从Oracle官网或OpenJDK下载并配置环境…

如何安装java

如何安装java

下载Java开发工具包(JDK) 访问Oracle官方网站或OpenJDK下载页面,选择适合操作系统的版本(Windows、macOS或Linux)。推荐下载最新的长期支持(LTS)版本,如Java…

java如何输入字符串

java如何输入字符串

使用 Scanner 类 在 Java 中,可以通过 java.util.Scanner 类来输入字符串。以下是一个示例代码: import java.util.Scanner; public c…

如何学好java

如何学好java

理解基础概念 掌握Java的核心概念是学习的基础。包括数据类型、变量、运算符、控制流(如循环和条件语句)、数组等。理解面向对象编程(OOP)的四大特性:封装、继承、多态和抽象。 实践编程练习 通过…

java如何创建数组

java如何创建数组

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