一、背景
barcode4j是一个Java库,用于生成常见的一维和二维条形码。它支持多种关键的条形码标准,包括Code 39、Code 128、EAN-13、PDF417和QR Code等。barcode4j提供了简单易用的API,使用者可以选择各种选项,如条形码的尺寸、颜色和字体等。
二、安装和使用
barcode4j可以通过Maven自动下载和设置。在pom.xml文件中加入以下代码即可:
<dependency>
<groupId>net.sf.barcode4j</groupId>
<artifactId>barcode4j-fop-ext</artifactId>
<version>2.1</version>
</dependency>
在Java项目中使用barcode4j非常简单,只需导入相应的包即可开始生成条形码。以下是生成Code 128条形码的简单示例:
import java.io.*;
import org.krysalis.barcode4j.impl.code128.Code128Bean;
import org.krysalis.barcode4j.output.bitmap.*;
public class BarcodeGenerator {
public static void main(String[] args) {
try {
Code128Bean bean = new Code128Bean();
final int dpi = 150;
// 配置bean
bean.setModuleWidth(UnitConv.in2mm(1.0f / dpi)); // 设置每个模块的宽度
bean.doQuietZone(false); //设置两侧的空白宽度
bean.setHeight(15); // 设置高度
OutputStream out = new FileOutputStream(new File("mycode128.png"));
BitmapCanvasProvider canvas = new BitmapCanvasProvider(out, "image/png", dpi, BufferedImage.TYPE_BYTE_BINARY, false, 0);
bean.generateBarcode(canvas, "Hello, world!"); //自定义内容
canvas.finish();
} catch (Exception e) {
e.printStackTrace();
}
}
}
该代码将生成名为"mycode128.png"的文件,其中包含所需的条形码。
三、条形码类型和用途
barcode4j支持多种条形码标准,每种标准都有其独特的用途和特性。
1、Code 39
Code 39条形码是一种常用的低密度线性码,用于标识文本信息,如货架标签、库存追踪和物流标签等。码字包括数字(0-9)、字母(A-Z)和几个特殊字符。Code 39最初是由Integrators Corporation在1974年为美国汽车工业的一项标准而开发的。 以下是生成Code 39条形码的示例代码:
Code39Bean bean = new Code39Bean();
final int dpi = 150;
// 设置模块宽度
bean.setModuleWidth(UnitConv.in2mm(2.0f / dpi));
// 设置两侧的空白宽度
bean.doQuietZone(false);
//配置要输出的内容
String code = "BARCODE39";
BarcodeDimension dim = bean.calcDimensions(code);
double width = dim.getWidthPlusQuiet();
// 设置条形码的大小
bean.setWideFactor(3);
bean.setHeight(10);
BitmapCanvasProvider canvas = new BitmapCanvasProvider(
out, "image/x-png", dpi,
BufferedImage.TYPE_BYTE_BINARY, false, 0);
bean.generateBarcode(canvas, code);
canvas.finish();
2、Code 128
Code 128条形码是一种更显密度的线性码,这意味着它可以存储更多的信息,适用于需要高密度和高容量的应用,如电子商务、物流和生产管理等。Code 128能够编码128个字符集(即ASCII中的每个字符)。 以下是生成Code 128条形码的示例代码:
Code128Bean bean = new Code128Bean();
final int dpi = 150;
// 设置每个模块的宽度
bean.setModuleWidth(UnitConv.in2mm(1.0f / dpi));
// 设置两侧的空白宽度
bean.doQuietZone(false);
// 设置条形码的高度
bean.setHeight(15);
BitmapCanvasProvider canvas = new BitmapCanvasProvider(
out, "image/x-png", dpi,
BufferedImage.TYPE_BYTE_BINARY, false, 0);
bean.generateBarcode(canvas, "BARCODE128");
canvas.finish();
3、EAN-13
EAN-13条形码是一种常用的条形码标准,主要用于标识商品,其中包含13位数字组成的码字。EAN-13条形码在全球范围内,特别是在欧洲是最常用的商品标识方法。 以下是生成EAN-13条形码的示例代码:
EAN13Bean bean = new EAN13Bean();
final int dpi = 150;
// 设置模块宽度
bean.setModuleWidth(UnitConv.in2mm(0.4f / dpi));
// 设置两侧的空白宽度
bean.doQuietZone(false);
BitmapCanvasProvider canvas = new BitmapCanvasProvider(
out, "image/x-png", dpi,
BufferedImage.TYPE_BYTE_BINARY, false, 0);
bean.generateBarcode(canvas, "123456789012");
canvas.finish();
四、条形码生成选项
barcode4j提供了各种选项,使用户可以对生成的条形码进行自定义设置,以适应其特定的需求。以下是barcode4j提供的一些选项:
1、模块宽度
模块宽度表示每个条形码模块的多少英寸或毫米。它对条形码的大小和密度有重要影响。
Code128Bean bean = new Code128Bean();
bean.setModuleWidth(UnitConv.in2mm(1.0f / dpi));
2、高度
条形码的高度与宽度一样重要。它指的是条形码的垂直尺寸,通常以毫米为单位。
Code128Bean bean = new Code128Bean();
bean.setHeight(15);
3、字体
有些条形码类型可以包括一些附加的文本,如物品名称、价格、日期和公司名称等。这通常是在条形码的底部添加一些文本。用户可以选择所需的字体来适应其应用场景。
Code128Bean bean = new Code128Bean();
bean.setFontName("Helvetica");
bean.setFontSize(10);
4、背景和前景颜色
条形码的颜色通常由背景和前景色组成。前景色是条形码的颜色,而背景色是条形码周围的背景色。用户可以通过以下示例设置所需的颜色组合:
Code128Bean bean = new Code128Bean();
bean.setBarColor(Color.BLACK);
bean.setBackground(Color.WHITE);
五、总结
通过本文的介绍,您已经了解了barcode4j的基础知识、安装和使用方法、常见条形码类型和使用场景、生成选项等方面的内容。越来越多的企业和组织在他们的业务流程中使用条形码。使用barcode4j生成条形码,将使您的工作更高效、更便捷。