Symbology settings in Windows Forms Barcode

26 Apr 20216 minutes to read

Each Barcode symbol can be associated with optional settings that may affect that specific bar code. The code sample below shows the settings of a code39 Barcode.

Code39Setting code39Settings = new Code39Setting();
code39Settings.BarHeight = 100;
this.sfBarcode1.SymbologySettings = code39Settings;
Dim code39Settings As New Code39Setting()
code39Settings.BarHeight = 100
sfBarcode1.SymbologySettings = code39Settings

1D Barcode settings

The one dimensional barcodes have some of the settings in common, such as BarHeight which modifies the height of the bars and NarrowBarWidth which modifies the width ratio of the wide and narrow bars.

Code39Setting code39Settings = new Code39Setting();
code39Settings.BarHeight = 100;
code39Settings.NarrowBarWidth = 1;
this.sfBarcode1.SymbologySettings = code39Settings;
Dim code39Settings As New Code39Setting()
code39Settings.BarHeight = 100
code39Settings.NarrowBarWidth = 1
sfBarcode1.SymbologySettings = code39Settings

The one dimensional barcodes also has the error detection settings. The EnableCheckDigit property enables the redundancy check using a check digit, the decimal equivalent of a binary parity bit. It consists of a single digit computed from the other digits in the message. The check digit can be shown in the barcode or kept hidden by using the ShowCheckDigit property.

The EncodeStartStopSymbols property adds Start and Stop symbols to signal a bar code reader that a bar code has been scanned.

Code39Setting code39Settings = new Code39Setting();
code39Settings.EnableCheckDigit = false;
code39Settings.ShowCheckDigit = false;
code39Settings.EncodeStartStopSymbols = true;
this.sfBarcode1.SymbologySettings = code39Settings;
Dim code39Settings As New Code39Setting()
code39Settings.EnableCheckDigit = false
code39Settings.ShowCheckDigit = false
code39Settings.EncodeStartStopSymbols = true
sfBarcode1.SymbologySettings = code39Settings

2D Barcode Settings

The two dimensional barcodes have a common XDimension property which modifies the block size of a two dimensional barcode.

DataMatrix Barcode settings

The DataMatrix barcode settings has the properties to modify the encoding and size of the DataMatrix barcode.

DataMatrixSetting barcodeSettings = new DataMatrixSetting();
barcodeSettings.XDimension = 8;
barcodeSettings.Encoding = DataMatrixEncoding.ASCII;
barcodeSettings.Size = DataMatrixSize.Size10x10;
this.sfBarcode1.SymbologySettings = barcodeSettings;
Dim barcodeSettings As New DataMatrixSetting()
barcodeSettings.XDimension = 8
barcodeSettings.Encoding = DataMatrixEncoding.ASCII
barcodeSettings.Size = DataMatrixSize.Size10x10
sfBarcode1.SymbologySettings = barcodeSettings


The encoding of the DataMatrix barcode can be modified using the ‘Encoding’ property. The DataMatrixEncoding enumeration has the following four encoding schemes.

  • ASCIINumeric
  • Auto
  • Base256


The DataMatrix Barcode settings allow the user to specify the size of the barcode from a set of predefined sizes available in the DataMatrixSize enumeration.

Data Matrix size Table

Data Matrix Size Description
Auto Size is chosen based on the input data
Size10x10 Square matrix with 10 rows and 10 columns.
Size12x12 Square matrix with 12 rows and 12 columns.
Size14x14 Square matrix with 14 rows and 14 columns.
Size16x16 Square matrix with 16 rows and 16 columns.
Size18x18 Square matrix with 18 rows and 18 columns.
Size20x20 Square matrix with 20 rows and 20 columns.
Size22x22 Square matrix with 22 rows and 22 columns.
Size24x24 Square matrix with 24 rows and 24 columns.
Size26x26 Square matrix with 26 rows and 26 columns.
Size32x32 Square matrix with 32 rows and 32 columns.
Size36x36 Square matrix with 36 rows and 36 columns.
Size40x40 Square matrix with 40 rows and 40 columns.
Size44x44 Square matrix with 44 rows and 44 columns.
Size48x48 Square matrix with 48 rows and 48 columns.
Size52x52 Square matrix with 52 rows and 52 columns.
Size64x64 Square matrix with 64 rows and 64 columns.
Size72x72 Square matrix with 72 rows and 72 columns.
Size80x80 Square matrix with 80 rows and 80 columns.
Size88x88 Square matrix with 88 rows and 88 columns.
Size96x96 Square matrix with 96 rows and 96 columns.
Size104x104 Square matrix with 104 rows and 104 columns.
Size120x120 Square matrix with 120 rows and 120 columns.
Size132x132 Square matrix with 132 rows and 132 columns.
Size144x144 Square matrix with 144 rows and 144 columns.
Size8x18 Rectangular matrix with 8 rows and 18 columns.
Size8x32 Rectangular matrix with 8 rows and 32 columns.
Size12x26 Rectangular matrix with 12 rows and 26 columns.
Size12x36 Rectangular matrix with 12 rows and 36 columns.
Size16x36 Rectangular matrix with 16 rows and 36 columns.
Size16x48 Rectangular matrix with 16 rows and 48 columns.

QRBarcode settings

The QRBarcode settings has properties to modify the version, error correction level and Input mode of the QRBarcode.

QRBarcodeSetting qrSettings = new QRBarcodeSetting();
qrSettings.XDimension = 8;
qrSettings.ErrorCorrectionLevel = ErrorCorrectionLevel.High;
qrSettings.InputMode = QRInputMode.BinaryMode;
qrSettings.Version = QRBarcodeVersion.Version04;
this.sfBarcode1.SymbologySettings = qrSettings;
Dim qrSettings As New QRBarcodeSetting()
qrSettings.XDimension = 8
qrSettings.ErrorCorrectionLevel = ErrorCorrectionLevel.High
qrSettings.InputMode = QRInputMode.BinaryMode
qrSettings.Version = QRBarcodeVersion.Version04
sfBarcode1.SymbologySettings = qrSettings


The QR Barcode uses version from 1 to 40.Version 1 measures 21 modules x 21 modules, Version 2 measures 25 modules x 25 modules and so on increasing in steps of 4 modules per side up to Version 40 which measures 177 modules x 177 modules. Each version has its own capacity. By default the QR Version is Auto, which will automatically set the version according to the input text length.

Error correction level

The QR Barcode employs error correction to generate a series of error correction codewords which are added to the data code word sequence in order to enable the symbol to withstand damage without loss of data. There are four user–selectable levels of error correction, as shown in the table, offering the capability of recovery from the following amounts of damage. By default the Error correction level is Low.

Error Correction Level Table

Error Correction Level Recovery Capacity % (approx.)
L 7
M 15
Q 25
H 30

Input mode

There are three modes for the input as defined in the table. Each mode supports the specific set of Input characters. User may select the most suitable input mode. By default the Input mode is Binary Mode.

Input Mode Table

Input Mode Possible characters
Numeric Mode 0,1,2,3,4,5,6,7,8,9
Alphanumeric Mode 0–9, A–Z (upper-case only), space, $, %, *, +, -,., /, :
Binary Mode Shift JIS characters