# Symbology settings in Windows Forms Barcode

26 Apr 2021 / 6 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
```

### Encoding

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

- ASCII
- ASCIINumeric
- Auto
- Base256

### Size

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
```

## Version

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 |