Codabar
- 2 minutes to read
Codabar is a one-dimensional (linear), self-checking barcode symbology that encodes digits (0–9), 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.

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());
}
}
}