Java中如何高效实现条形码的生成与打印?
- 后端开发
- 2025-11-01
- 6
在Java中生成条形码通常需要使用第三方库,因为Java标准库中并没有直接提供条形码生成功能,以下是一些常用的Java条形码生成库以及相应的使用方法。
使用ZXing库生成条形码
ZXing(Zebra Crossing)是一个开源的条形码和二维码生成库,支持多种格式,包括QR码、Data Matrix、UPCA、EAN13等。
安装ZXing库
您需要在项目中添加ZXing库,如果您使用Maven,可以在pom.xml文件中添加以下依赖:
<dependency> <groupId>com.google.zxing</groupId> <artifactId>core</artifactId> <version>3.4.1</version> </dependency> <dependency> <groupId>com.google.zxing</groupId> <artifactId>javase</artifactId> <version>3.4.1</version> </dependency>
生成条形码
以下是一个使用ZXing库生成EAN13条形码的示例:
import com.google.zxing.BarcodeFormat; import com.google.zxing.EncodeHintType; import com.google.zxing.MultiFormatWriter; import com.google.zxing.WriterException; import com.google.zxing.common.BitMatrix; import com.google.zxing.qrcode.decoder.ErrorCorrectionLevel; import java.util.HashMap; import java.util.Map; public class BarcodeGenerator { public static void main(String[] args) { String content = "123456789012"; // 条形码内容 int width = 350; // 条形码宽度 int height = 100; // 条形码高度 String format = "EAN_13"; // 条形码格式 Map<EncodeHintType, Object> hints = new HashMap<>(); hints.put(EncodeHintType.CHARACTER_SET, "UTF8"); hints.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.H); try { BitMatrix bitMatrix = new MultiFormatWriter().encode(content, BarcodeFormat.valueOf(format), width, height, hints); // 生成条形码图片 // ... } catch (WriterException e) { e.printStackTrace(); } } }
使用iText库生成条形码
iText是一个用于生成PDF文档的Java库,它也支持生成条形码。

安装iText库
如果您使用Maven,可以在pom.xml文件中添加以下依赖:
<dependency> <groupId>com.itextpdf</groupId> <artifactId>itext7core</artifactId> <version>7.1.10</version> </dependency>
生成条形码
以下是一个使用iText库生成条形码的示例:


import com.itextpdf.kernel.pdf.PdfDocument; import com.itextpdf.kernel.pdf.PdfWriter; import com.itextpdf.layout.Document; import com.itextpdf.layout.element.Image; import com.itextpdf.layout.element.Paragraph; import java.io.FileNotFoundException; import java.io.FileOutputStream; public class BarcodeGenerator { public static void main(String[] args) { String content = "123456789012"; // 条形码内容 String format = "EAN_13"; // 条形码格式 try { PdfWriter writer = new PdfWriter(new FileOutputStream("barcode.pdf")); PdfDocument pdf = new PdfDocument(writer); Document document = new Document(pdf); // 生成条形码图片 Image barcodeImage = new Image(ImageData.createBarcode(content, BarcodeFormat.valueOf(format), 350, 100)); document.add(barcodeImage); document.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } } }
FAQs
Q1:如何将生成的条形码保存为图片文件?
A1:您可以使用ZXing库中的BitMatrix对象生成条形码图片,然后使用Java的图像处理库(如ImageIO)将其保存为PNG、JPEG等格式。
Q2:如何自定义条形码的尺寸和颜色?
A2:您可以通过ZXing库中的MultiFormatWriter和BitMatrix类自定义条形码的尺寸和颜色,您可以通过设置BitMatrix中的像素值来改变颜色。