Symbology Properties

This is a listing of all available properties of barcode symbologies. See Configure Which Barcodes Are Read for how to set them.

What Are Symbology Properties

Symbologies often have different properties, such as symbol count (length of the barcode) or inverted colors (printed white on black). To provide optimal performances, some properties/values are disabled by default in our SDK. You might need to scan a symbology whose properties are by default disabled. This article lists all symbology specific properties, their defaults and possible values.

1D Symbology Properties

  • Color-inverted (bright bars on dark background) decoding for symbologies that support it is disabled and must be explicitly enabled.

  • Optional checksum digits (e.g. for interleaved 2 of 5 codes, or MSI-Plessey codes) are always returned as part of the data.

Symbology

Checksums

Symbol Count

Supports Color-Inversion

Extensions

Mandatory

Optional

Default Range

Supported Range

Supported

Default

EAN-13 & UPC-A

mod10

12

12

yes

relaxed_sharp_quiet_zone_check, remove_leading_upca_zero, two_digit_add_on, five_digit_add_on, strict

EAN-8

mod10

8

8

yes

relaxed_sharp_quiet_zone_check, two_digit_add_on, five_digit_add_on, strict

UPC-E

mod10

6

6

yes

return_as_upca, remove_leading_upca_zero, two_digit_add_on, five_digit_add_on, strict

Two-Digit Add-on

mod10

2

2

yes

strict

Five-Digit Add-on

mod10

5

5

yes

strict

MSI Plessey

none

mod10, mod11, mod1010, mod1110

mod10

6-32 3

3-32

no

strict

Code 128

mod103

6-40 3 (includes 1 checksum and 2 guard symbols)

4-50

yes

strip_leading_fnc1 1 , strict

Code 11

none

mod11

mod11

7-20 (includes 0-2 checksum digits)

5-34

no

strict

Code 25

none

mod10

7-20

3-32

no

strict

IATA 2 of 5

none

mod1010

7-20

3-32

no

strict

Matrix 2 of 5

none

mod10

7-20

3-32

no

strict

Code 32

mod10

8 (plus one check digit)

8

no

strict

Code 39

none

mod43

6-40 3 (includes 2 guard symbols)

3-50 4

yes

full_ascii, relaxed_sharp_quiet_zone_check, strict

Code 93

mod47

6-40 3 (includes 2 checksums and 2 guard symbols)

5-60

no

full_ascii 2 , strict

Codabar

none

mod16, mod11

7-20 (includes 2 guard symbols)

3-34

no

strict

GS1 DataBar 14

mod10

2 (encoding 14 digits)

2

no

strict

GS1 DataBar Expanded

mod211

1-11 (encoding 1-74 characters)

1-11

no

strict

GS1 DataBar Limited

mod89

1 (encoding 14 digits)

1

no

relaxed_sharp_quiet_zone_check, strict

Interleaved-Two-of-Five (ITF)

none

mod10

6-40 3

4-50

no

strict

RM4SCC

mod36

7-24

4-50

no

KIX

none

7-24

4-50

no

LAPA

none

16

16

no

USPS Intelligent Mail

none

65

65

no

UPU S18 4-State

none

19 or 25

19 or 25

no

1

Enabled by default.

2

Always enabled and can’t be disabled.

3(1,2,3,4,5)

Extended as part of the 6.4.0 release.

4

Extended to 50 as part of the 6.5.1 release.

2D Symbology Properties

Symbology

Supports Color-Inversion

Extensions

Aztec Code

yes

Data Matrix

yes

strip_leading_fnc1 5, direct_part_marking_mode

DotCode

yes

MaxiCode

no

MicroPDF417

no

PDF417

no

QR Code

yes

Micro QR Code

yes

ArUco

yes

5

Enabled by default.

Symbology Extension Descriptions

full_ascii

Interprets the Code39 code data using two symbols per output character to encode all ASCII characters.

relaxed_sharp_quiet_zone_check

Enables scanning codes that have quiet zones (white area before and after the code) that are significantly smaller than allowed by the symbology specification. Use this extension if you are having difficulties to scan codes due to quiet zone violations. However, enabling it may come at the cost of more false positives under certain circumstances.

return_as_upca

Transforms the UPCE result into its UPCA representation.

remove_leading_upca_zero

Removes the leading zero digit from the result if the UPCA representation extension ‘return_as_upca’ is enabled.

strip_leading_fnc1

Removes the leading FNC1 character that indicates a GS1 code. To determine whether a certain code is a GS1 code, use ref sc_barcode_is_gs1_data_carrier.

direct_part_marking_mode

Use this mode to improve scan performance when reading direct part marked (DPM) Data Matrix codes. Enabling this extension comes at the cost of increased frame processing times. It is recommended to restrict the scanning area to a smaller part of the image for best performance.

strict

Enforce strict standard adherence to eliminate false positives in blurry, irregular or damaged barcodes at the cost of reduced scan performance.

Calculating Symbol Counts for Variable-Length Symbologies

The length of data encoded in variable-length symbologies such as Code 128, Codabar, Code 39 etc. is measured as the number of symbols. Depending on the symbology, the symbol count includes the start and end symbol, and/or checksum characters. The following list shows how to calculate the number of symbols for each variable-length symbology. These counts can be used as the input to sc_symbology_settings_set_active_symbol_counts().

Interleaved-Two-of-Five

The number of symbols corresponds to the number of digits in the code. Note that the number of digits must be even. Example: the code c “1234567890123” has a symbol count of 14. For the active symbol count calculation, optional checksum digits are treated like normal data symbols.

Codabar

The number of symbols corresponds to the number of digits in the code, plus the start and end symbols. Example: the code c “A2334253D” has a symbol count of 7 + 2 = 9.

Code 11

The number of symbols corresponds to the number of digits in the code, plus one or two checksum symbols. For less than ten digits in the code, one checksum symbol is added. Two checksum symbols are added for ten or more digits in the code. Example: the code c “912-34956” (c “912-349566”) has a symbol count of 9 + 1 = 10. The code c “912-3495-6” (c “912-3495-638”) has a symbol count of 10 + 2 = 12.

Code 128

The number of symbols depends on the encoding used (A, B or C). All encodings require a start, an end and a checksum symbol. The ASCII encoding modes (A and B) store each character in one symbol. Example: the code c “ABC123” in mode A has a symbol count of 6 + 2 + 1 = 9. The numeric encoding mode (C) encodes pairs of digits in one symbol. Example: the code c “123456” has a symbol count of 3 + 2 + 1 = 6. Some encoders switch modes inside the code using switch symbols to optimize the code length. In this case the exact encoding used is needed to compute the number of symbols.

Code 93

The number of symbols corresponds to the number of characters in the code, plus the start and end symbols and 2 checksum digits. Shift characters used in “extended code93” are treated as normal data symbols. Example: the code c “ABCDE12345” has a symbol count of 10 + 2 + 2 = 14.

Code 39

The number of symbols corresponds to the number of characters in the code, plus the start and end symbols. Note that the start and end symbols are not included in the returned barcode data. Example: the code c “4F70050378196356D” (c “4F70050378196356D”) has a symbol count of 17 + 2 = 19.

MSI Plessey and Code 25

The number of symbols corresponds to the number of digits in the code. Example: the code c “12345674” has a symbol count of 8. For the active symbol count calculation, optional checksum digits are treated like normal data symbols.

GS1 DataBar 14

The symbol count corresponds to the number of finder patterns in the code. Each finder is accompanied by two data segments.

GS1 DataBar Expanded

The symbol count cannot be changed at the moment.

RM4SCC

The number of symbols corresponds to the number of characters in the code, including the checksum character.

KIX

The number of symbols corresponds to the number of characters in the code.