GS1 QR Code
- 2 minutes to read
A GS1 QR Code is a two-dimensional barcode that combines capabilities of a QR Code with the GS1 system of standards. It uses GS1 Application Identifiers (AIs) to encode structured data (such as product identifiers, batch numbers, expiration dates, and serial numbers).
GS1 QR Codes support significantly more data than traditional linear barcodes and can encode multiple data elements in a single symbol. They are widely used in retail, healthcare, and logistics.

Refer to the following page for additional information: GS1 General Specification
Configure GS1 QR Code Settings
Use the QRGS1Options class to configure QR GS1 barcode settings.
| Method | Description |
|---|---|
| setFNC1Substitute() | Specifies a substring or character used as a placeholder for the FNC1 functional character in GS1 QR Code input data. |
The following code snippet creates a GS1 QR Code 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 {
QRCodeGS1Options options = new QRCodeGS1Options();
options.setErrorCorrectionLevel(QRCodeErrorCorrectionLevel.H);
options.setCompactionMode(QRCodeCompactionMode.AUTO);
options.setIncludeQuietZone(true);
options.setVersion(QRCodeVersion.VERSION_20);
options.setModuleSize(50);
options.setPadding(new Padding(10));
options.setShowText(false);
options.setWidth(600);
Path outputDir = Path.of("output");
Files.createDirectories(outputDir);
try (FileOutputStream fileStream = new FileOutputStream(
outputDir.resolve("qrcodeGS1.png").toFile());
BarcodeGenerator barcodeGenerator = new BarcodeGenerator(options)) {
barcodeGenerator.export(
"(01)09506000134352(17)260630(2026)https://www.devexpress.com",
fileStream,
DXImageFormat.getPng());
}
}
}
Fluent API
Use the QRGS1OptionsBuilder class to configure QR GS1 barcode settings with the Fluent API.
The following code snippet creates a GS1 QR Code 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 {
QRCodeGS1Options options = QRCodeGS1OptionsBuilder.create()
.withErrorCorrectionLevel(QRCodeErrorCorrectionLevel.H)
.withCompactionMode(QRCodeCompactionMode.AUTO)
.withIncludeQuietZone(true)
.withVersion(QRCodeVersion.VERSION_20)
.withModuleSize(50)
.withPadding(new Padding(10))
.withShowText(false)
.withWidth(600)
.build();
Path outputDir = Path.of("output");
Files.createDirectories(outputDir);
try (FileOutputStream fileStream = new FileOutputStream(
outputDir.resolve("qrcodeGS1.png").toFile());
BarcodeGenerator barcodeGenerator = new BarcodeGenerator(options)) {
barcodeGenerator.export(
"(01)09506000134352(17)260630(2026)https://www.devexpress.com",
fileStream,
DXImageFormat.getPng());
}
}
}