Skip to main content

Codabar

  • 2 minutes to read

Codabar is a one-dimensional (linear), self-checking barcode symbology that encodes digits (09), several special characters (-, $, :, /, ., +), and four start/stop symbols (A, B, C, and D). Codabar is widely used in healthcare, blood banking, library systems, and legacy logistics applications.

Codabar, DevExpress Barcode Generation API for Java

Refer to the following page for additional information: https://en.wikipedia.org/wiki/Codabar

Configure Codabar Settings

Use the CodabarOptions class to configure Codabar barcode settings.

Method Description
setStartSymbol(CodabarStartStopSymbol value) Specifies the start character (A, B, C, or D) that precedes the encoded data.
setStopSymbol(CodabarStartStopSymbol value) Specifies the stop character (A, B, C, or D) that follows the encoded data.
setWideNarrowRatio(float value) Specifies the ratio between wide and narrow bars and spaces in the barcode.

The following code snippet creates a Codabar barcode and customizes its encoding parameters.

import com.devexpress.drawing.*;
import com.devexpress.docs.barcode.*;
import com.devexpress.system.drawing.*;
import com.devexpress.docs.Padding;

import java.io.*;
import java.nio.file.*;

public class Main {
    public static void main(String[] args) throws Exception {

        CodabarOptions options = new CodabarOptions();
        options.setStartSymbol(CodabarStartStopSymbol.A);
        options.setStopSymbol(CodabarStartStopSymbol.D);
        options.setWideNarrowRatio(1.5f);
        options.setShowText(true);

        Path outputDir = Path.of("output");
        Files.createDirectories(outputDir);

        try (FileOutputStream fileStream = new FileOutputStream(
                outputDir.resolve("codabar.png").toFile());
                BarcodeGenerator barcodeGenerator = new BarcodeGenerator(options)) {
                    barcodeGenerator.export(
                            "12345-67890",
                            fileStream,
                            DXImageFormat.getPng());
        }
    }
}

Fluent API

Use the CodabarOptionsBuilder class to configure Codabar barcode settings with the Fluent API.

The following code snippet creates a Codabar barcode and customizes its encoding parameters with the Fluent API:

import com.devexpress.drawing.*;
import com.devexpress.docs.barcode.*;
import com.devexpress.system.drawing.*;
import com.devexpress.docs.Padding;

import java.io.*;
import java.nio.file.*;

public class Main {
    public static void main(String[] args) throws Exception {

        CodabarOptions options = CodabarOptionsBuilder.create()
            .withStartSymbol(CodabarStartStopSymbol.A)
            .withStopSymbol(CodabarStartStopSymbol.D)
            .withWideNarrowRatio(1.5f)
            .withShowText(true)
            .build();

        Path outputDir = Path.of("output");
        Files.createDirectories(outputDir);

        try (FileOutputStream fileStream = new FileOutputStream(
                outputDir.resolve("codabar.png").toFile());
                BarcodeGenerator barcodeGenerator = new BarcodeGenerator(options)) {
                    barcodeGenerator.export(
                            "12345-67890",
                            fileStream,
                            DXImageFormat.getPng());
        }
    }
}
See Also