Skip to main content

GS1 DataBar

  • 2 minutes to read

GS1 DataBar is a family of compact linear barcode symbologies designed for retail, couponing, and supply chain applications. Depending on the variant, GS1 DataBar can encode GTIN-8, GTIN-12, GTIN-13, and GTIN-14 identifiers in a smaller symbol than traditional retail barcodes.

GS1 DataBar, DevExpress Barcode Generation API for Java

Refer to the following help topic for additional information: https://www.gs1.org/standards/barcodes/databar

Configure GS1 DataBar Settings

Use the DataBarOptions class to configure GS1 DataBar barcode settings.

Method Description
setType(DataBarType value) Specifies the GS1 DataBar symbol type.
setSegmentsInRow(int value) Sets the number of data segments per row in the EXPANDED_STACKED symbol type.
setFNC1Substitute(String value) Specifies the substitute character used to represent the FNC1 separator in GS1 DataBar input data.

The following code snippet creates a GS1 DataBar 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 {

        DataBarOptions options = new DataBarOptions();
        options.setType(DataBarType.EXPANDED_STACKED);
        options.setSegmentsInRow(4);
        options.setPadding(new Padding(10));
        options.setShowText(false);

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

        try (FileOutputStream fileStream = new FileOutputStream(
                outputDir.resolve("databar.png").toFile());
                BarcodeGenerator barcodeGenerator = new BarcodeGenerator(options)) {
                    barcodeGenerator.export(
                            "010950600013435210ABC123",
                            fileStream,
                            DXImageFormat.getPng());
        }
    }
}

Fluent API

Use the DataBarOptionsBuilder class to configure GS1 DataBar barcode settings with the Fluent API.

The following code snippet creates a GS1 DataBar 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 {

        DataBarOptions options = DataBarOptionsBuilder.create()
            .withType(DataBarType.EXPANDED_STACKED)
            .withSegmentsInRow(4)
            .withPadding(new Padding(10))
            .withShowText(false)
            .build();

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

        try (FileOutputStream fileStream = new FileOutputStream(
                outputDir.resolve("databar.png").toFile());
                BarcodeGenerator barcodeGenerator = new BarcodeGenerator(options)) {
                    barcodeGenerator.export(
                            "010950600013435210ABC123",
                            fileStream,
                            DXImageFormat.getPng());
        }
    }
}
See Also