Symbology#

Defined in framework ScanditBarcodeCapture

The Scandit Data Capture SDK is capable of reading many different types of barcodes. The type of a barcode is referred to as its symbology. Below is a list of all symbologies supported by the Scandit Data Capture SDK.

SDCSymbology#

Added in version 6.0.0

An enumeration of barcode types (symbologies) supported by the Scandit Data Capture SDK.

The availability of the symbology depends on the licensed features.

SDCSymbologyEAN13UPCA#

Added in version 6.0.0

EAN-13/UPC-12/UPC-A 1D barcode symbology.

SDCSymbologyUPCE#

Added in version 6.0.0

UPC-E 1D barcode symbology.

SDCSymbologyEAN8#

Added in version 6.0.0

Ean8 1D barcode symbology.

SDCSymbologyCode39#

Added in version 6.0.0

Code39 1D barcode symbology.

SDCSymbologyCode93#

Added in version 6.0.0

Code93 1D barcode symbology.

SDCSymbologyCode128#

Added in version 6.0.0

Code128 1D barcode symbology.

SDCSymbologyCode11#

Added in version 6.0.0

Code11 1D barcode symbology.

SDCSymbologyCode25#

Added in version 6.0.0

Code25 1D barcode symbology.

SDCSymbologyCodabar#

Added in version 6.0.0

Codabar 1D barcode symbology.

SDCSymbologyInterleavedTwoOfFive#

Added in version 6.0.0

Interleaved two of five (ITF) 1D barcode symbology.

SDCSymbologyMSIPlessey#

Added in version 6.0.0

MSI-Plessey 1D barcode symbology.

SDCSymbologyQR#

Added in version 6.0.0

QR Code 2D barcode symbology.

SDCSymbologyDataMatrix#

Added in version 6.0.0

Data Matrix 2D barcode symbology.

SDCSymbologyAztec#

Added in version 6.0.0

Aztec Code 2D barcode symbology.

SDCSymbologyMaxiCode#

Added in version 6.0.0

MaxiCode 2D barcode symbology.

SDCSymbologyDotCode#

Added in version 6.0.0

Dot Code symbology.

SDCSymbologyKIX#

Added in version 6.0.0

Royal Dutch TPG Post KIX.

SDCSymbologyRM4SCC#

Added in version 6.0.0

Royal Mail 4 State Customer Code (RM4SCC).

SDCSymbologyGS1Databar#

Added in version 6.0.0

GS1 DataBar 14 1D barcode symbology.

SDCSymbologyGS1DatabarExpanded#

Added in version 6.0.0

GS1 DataBar Expanded 1D barcode symbology.

SDCSymbologyGS1DatabarLimited#

Added in version 6.0.0

GS1 DataBarLimited 1D barcode symbology.

SDCSymbologyPDF417#

Added in version 6.0.0

PDF417 barcode symbology.

SDCSymbologyMicroPDF417#

Added in version 6.0.0

MicroPDF417 barcode symbology.

SDCSymbologyMicroQR#

Added in version 6.0.0

MicroQR Code 2D barcode symbology.

SDCSymbologyCode32#

Added in version 6.0.0

Code32 1D barcode symbology.

SDCSymbologyLapa4SC#

Added in version 6.0.0

Posi LAPA Reed Solomon 4-state code postal code symbology.

SDCSymbologyToString(symbology)#
NSString *_Nonnull SDCSymbologyToString(SDCSymbology symbology)

Added in version 6.0.0

Gets the string representation for the provided symbology enum.

SDCAllSymbologies()#
NSArray<NSNumber *> *_Nonnull SDCAllSymbologies(void)

Added in version 6.0.0

Returns the list of all supported symbologies by the Scandit Data Capture SDK.

Configuring Symbologies#

Barcode symbologies are configured through SDCSymbologySettings. For most cases, it is sufficient to just enable the barcode symbology and no other configuration is required. For more involved use cases, the symbology settings need to be tweaked to get best decoding performance.

Example: Enabling decoding of QR codes

let settings = BarcodeCaptureSettings()
settings.set(symbology: .qr, enabled: true)

Configuring the Active Symbol Count#

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 when changing SDCSymbologySettings.activeSymbolCounts.

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 "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 "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 "912-34956" ("912-349566") has a symbol count of 9 + 1 = 10. The code "912-3495-6" ("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 "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 "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 "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 "4F70050378196356D" ("*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 "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.

Symbology Extensions#

full_ascii

Interprets the Code 39 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 UPC-E result into its UPC-A representation.

remove_leading_upca_zero

Removes the leading zero digit from the result. This extension is available for SDCSymbologyEAN13UPCA. In addition, this extension is available for SDCSymbologyUPCE when the UPC-A 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 SDCBarcode.isGS1DataCarrier.

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.