barcode4j详细介绍

一、背景

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生成条形码,将使您的工作更高效、更便捷。

原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/192868.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝小蓝
上一篇 2024-12-01 10:30
下一篇 2024-12-01 10:30

相关推荐

  • 画er图网站详细介绍

    一、网站介绍 画er图是一个画流程图的在线工具,提供多种流程图、思维导图的绘制模板,方便用户根据自身需求量身定制。该网站提供免费试用,可同时多人在线协作编辑。 画er图通过简单明了…

    编程 2025-04-25
  • Burp Suite Mac详细介绍

    Burp Suite Mac是一款全称Burp Suite Professional for Mac OS X的Mac版网络攻击测试工具,它能帮助安全测试人员对网络应用进行渗透测试…

    编程 2025-04-25
  • 百度地图拾取器详细介绍

    一、百度地图拾取器地址 百度地图拾取器是一款可快速获取百度地图具体位置坐标的工具。其地址为:https://api.map.baidu.com/lbsapi/getpoint/in…

    编程 2025-04-25
  • HTML5语义化标签的详细介绍

    一、<header> 标签 <header> 标签用于定义文档或节的页眉。通常包含导航元素和标题元素。 <header> <h1>这…

    编程 2025-04-24
  • fseek函数的详细介绍

    一、fseek在C语言中的意义 fseek函数是C语言中I/O库中的一个函数,它用于在文件中移动读写位置指针。这个函数可以在文件中随意移动读写位置指针从而实现对文件的随机读写操作。…

    编程 2025-04-24
  • Mac Nginx详细介绍

    一、安装Nginx 安装nginx最简便的方法是使用Homebrew。执行以下命令来安装Homebrew: /usr/bin/ruby -e “$(curl -fsSL https…

    编程 2025-04-23
  • Win11截图工具详细介绍

    一、Win11截图工具 Win11截图工具是Windows 11系统中自带的一个截图工具,它可以帮助用户快速地捕捉屏幕截图。Win11截图工具可以截取整个屏幕、活动窗口或自定义选定…

    编程 2025-04-23
  • jQuery remove() 方法的详细介绍

    一、选取 jQuery中的remove()方法是用于删除指定元素及其子元素的方法。它的基本语法如下: $(selector).remove(); 其中的selector可以是指定要…

    编程 2025-04-23
  • IDEAGIT回滚到指定版本的详细介绍

    在进行软件开发时,版本控制是非常重要的一部分。IDEAGIT是一款优秀的版本控制工具,它可以帮助开发者记录代码的修改历史并进行代码的版本管理。有时候我们会需要回滚到某个指定版本,本…

    编程 2025-04-23
  • C语言string.h中函数的详细介绍

    一、strcpy函数 strcpy函数是C语言中常用的字符串拷贝函数,其原型为: char *strcpy(char *dest, const char *src); 该函数的作用…

    编程 2025-04-23

发表回复

登录后才能评论