当前位置:首页 > 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文件

安装JDK 确保系统已安装Java Development Kit(JDK)。可通过命令行输入 javac -version 和 java -version 验证。若未安装,需从Oracle或Open…

java如何遍历map

java如何遍历map

遍历Map的几种方法 在Java中,遍历Map有多种方式,可以根据需求选择合适的方法。以下是常见的几种遍历方式: 使用entrySet遍历 通过entrySet()方法获取键值对的集合,可以同时访问…

java如何返回数组

java如何返回数组

返回数组的方法 在Java中,可以通过多种方式返回数组。以下是几种常见的方法: 直接返回数组 定义一个方法,返回类型为数组类型,直接在方法内部创建并返回数组。 public int[] getI…

java如何创建文件

java如何创建文件

创建文件的方法 在Java中创建文件可以通过多种方式实现,以下是常见的几种方法: 使用File.createNewFile()方法 这种方法适用于简单的文件创建需求。需要先创建一个File对象,然…

java如何

java如何

以下是针对Java常见需求的解决方案整理,以模块化方式呈现: 基础环境配置 下载JDK并配置环境变量,官网提供最新版本。验证安装使用命令 java -version。IDE推荐IntelliJ ID…

java如何运行

java如何运行

运行Java程序的基本方法 安装Java Development Kit (JDK) 确保系统已安装JDK,可通过命令行输入java -version和javac -version验证。若未安装,需从…