Part 9 Supported Barcode Symbologies and Their Technical Implementation |
9.1 Overview of Symbology Support in the OnBarcode Barcode SDK |
The OnBarcode Barcode SDK is designed as a *multi-symbology engine*, meaning that it supports a wide range of linear (1D) and two-dimensional (2D) barcode formats within a single unified framework. Rather than treating each barcode type as an isolated module, the SDK implements a common abstraction layer that standardizes how symbologies are encoded, validated, rendered, and exported. |
This architectural decision has significant implications. It allows developers to switch between barcode types with minimal code changes, reuse configuration logic, and maintain consistent rendering behavior across fundamentally different symbologies. At the same time, each barcode type preserves its own encoding rules, error-checking mechanisms, and layout constraints. |
In this part, we examine the major barcode symbologies supported by the SDK, with an emphasis on *technical encoding logic, data capacity, structural characteristics, and practical application scenarios*. |

|
9.2 Linear (1D) Barcode Symbologies General Characteristics |
Linear barcodes encode information as a sequence of bars and spaces of varying widths along a single axis. The OnBarcode SDK implements linear barcode encoding using a modular bar-space pattern generator that supports both fixed-width and variable-width encodings. |
Across all linear symbologies, the SDK enforces several universal constraints: |
1. Minimum bar width and inter-character spacing |
2. Mandatory start and stop patterns |
3. Optional or required checksum calculations |
4. Quiet zone enforcement on both sides |
5. Human-readable interpretation (HRI) alignment |
Despite these shared characteristics, each symbology differs in data alphabet, density, checksum rules, and industry usage. |

|
9.3 Code 39 (Code 3 of 9) |
Code 39 is one of the earliest and most widely adopted alphanumeric barcode standards. The OnBarcode SDK supports both standard Code 39 and Extended Code 39. |
From a technical standpoint, Code 39 encodes characters using a pattern of nine elements: five bars and four spaces, with three of the nine elements rendered as wide. The SDK encoder constructs these patterns from a predefined lookup table and inserts an inter-character gap between symbols. |
Extended Code 39 expands the character set to full ASCII by representing characters as sequences of two standard Code 39 characters. The SDK automatically handles this transformation internally, allowing developers to pass ASCII strings without manual preprocessing. |
Checksum support is optional and configurable. When enabled, the SDK calculates the modulo-43 checksum and appends it as an additional character before rendering. |

|
9.4 Code 128 and GS1-128 |
Code 128 is a high-density linear barcode capable of encoding the full ASCII character set. The OnBarcode SDK provides full support for Code 128 subsets A, B, and C, as well as automatic subset switching. |
The encoder analyzes input data to determine the most efficient subset sequence, minimizing symbol length. Numeric sequences are automatically encoded using subset C, which compresses pairs of digits into a single symbol. |
GS1-128 is implemented as a specialized variant of Code 128. The SDK enforces GS1 rules such as: |
1. Mandatory FNC1 character at the start |
2. Application Identifier (AI) parsing |
3. Fixed-length and variable-length AI handling |
The SDK does not merely insert raw control characters; it validates AI syntax and ensures correct symbol termination. This is especially important in logistics and healthcare applications where GS1 compliance is non-negotiable. |

|
9.5 Code 93 |
Code 93 is a higher-density successor to Code 39, offering improved data capacity and built-in error detection. The SDK implements Code 93 using its dual-checksum system (C and K checksums), both of which are mandatory. |
Encoding involves mapping characters to 9-module patterns with three bars and three spaces. The SDK calculates both checksums automatically and appends them before adding start and stop characters. |
Extended Code 93 is also supported, enabling full ASCII encoding through shift characters. As with Code 39, this complexity is abstracted away from the developer. |

|
9.6 Codabar |
Codabar is commonly used in libraries, blood banks, and logistics. Its encoding is simpler than most modern symbologies and supports numeric data plus a limited set of special characters. |
The OnBarcode SDK allows customization of start and stop characters, which is a practical requirement since different industries use different Codabar conventions. |
Codabar does not require a checksum by default, but optional checksum schemes are supported for environments that demand additional validation. |

|
9.7 Interleaved 2 of 5 (ITF) and ITF-14 |
Interleaved 2 of 5 encodes numeric data using pairs of digits, with bars representing one digit and spaces representing the other. The SDK enforces even-length input and provides automatic padding if configured. |
ITF-14 is implemented as a specialization of ITF, with fixed-length (14-digit) encoding and bearer bar support. Bearer bars are rendered as thick borders around the barcode to protect against partial scans. |
The SDK calculates the modulo-10 checksum automatically and ensures that bar width ratios meet retail scanning standards. |

|
9.8 UPC and EAN Family |
The UPC and EAN family of barcodes are fundamental to retail operations. The OnBarcode SDK supports UPC-A, UPC-E, EAN-8, and EAN-13. |
Each of these symbologies has strict formatting rules, including: |
1. Fixed data length |
2. Mandatory checksum digit |
3. Guard bar patterns |
4. Digit placement relative to bars |
The SDK automatically calculates and validates checksum digits. It also positions human-readable digits according to industry conventions, including splitting digits around guard bars. |
UPC-E compression and expansion logic is fully implemented, allowing developers to input either compressed or expanded formats. |

|
9.9 MSI (Modified Plessey) |
MSI is primarily used in inventory and warehouse systems. The SDK supports multiple checksum variants, including Mod 10, Mod 11, and dual-checksum configurations. |
Developers can select the desired checksum algorithm via configuration, and the SDK applies it consistently during encoding. |

|
9.10 Two-Dimensional (2D) Barcode Symbologies General Characteristics |
Two-dimensional barcodes encode data across both horizontal and vertical axes, dramatically increasing data capacity and robustness. |
The OnBarcode SDK implements 2D symbologies using grid-based symbol models. Each symbol is represented as a matrix of modules, with additional structural elements such as finder patterns, timing patterns, and error correction blocks. |
Common features across 2D symbologies include: |
1. Error correction coding |
2. Fixed or variable symbol sizes |
3. Encoding modes (numeric, alphanumeric, binary) |
4. Masking or pattern selection |
5. Quiet zone enforcement |

|
9.11 QR Code |
QR Code is one of the most versatile and widely used 2D barcodes. The SDK supports all QR Code versions and error correction levels. |
The encoder analyzes input data and selects appropriate encoding modes dynamically. It determines the minimum symbol version required to store the data at the chosen error correction level. |
Error correction is implemented using Reed-Solomon coding, and the SDK applies masking algorithms to minimize problematic patterns. Mask selection is automatic and standards-compliant. |
The SDK also supports structured append, allowing large datasets to be split across multiple QR Codes. |

|
9.12 Data Matrix (ECC 200) |
Data Matrix is widely used in industrial, aerospace, and healthcare environments. The SDK supports ECC 200, the modern and standardized version of Data Matrix. |
Encoding involves mapping data into codewords, applying Reed-Solomon error correction, and placing modules within a square or rectangular matrix. |
The SDK supports both ASCII and binary encoding modes and automatically selects optimal symbol sizes. |
Data Matrix is particularly valued for its ability to remain readable even when printed at very small sizes, and the SDK precise rendering engine supports this use case effectively. |

|
9.13 PDF417 |
PDF417 is a stacked linear barcode capable of encoding large amounts of data. The SDK implements full PDF417 support, including error correction levels, row and column configuration, and compact mode. |
Encoding involves converting input data into codewords, grouping them into rows, and applying error correction using Reed-Solomon algorithms. |
The SDK allows developers to balance symbol size and redundancy by configuring error correction levels and row counts. |

|
9.14 Aztec Code |
Aztec Code is notable for its compact size and minimal quiet zone requirements. The SDK supports both full-range and compact Aztec codes. |
The encoder determines the appropriate number of layers and applies error correction based on user configuration. |
Aztec Code is particularly suited for applications where space is limited or where quiet zones cannot be guaranteed, such as transportation tickets and mobile screens. |

|
9.15 MaxiCode |
MaxiCode is primarily used in logistics and shipping. The SDK supports multiple MaxiCode modes, including those used for structured carrier information. |
MaxiCode symbols include a distinctive bullseye pattern for orientation, which the SDK renders precisely using its vector-based engine. |

|
9.16 Micro QR Code and Other Compact Formats |
For applications with extremely limited space, the SDK supports Micro QR Code and other compact variants where applicable. |
These formats reduce symbol size by limiting data capacity and error correction options. The SDK enforces these constraints automatically to prevent invalid symbol generation. |

|
9.17 Symbology Abstraction and Unified API Design |
A key strength of the OnBarcode Barcode SDK is that all these symbologies are exposed through a unified API. Developers select a barcode type, supply data, and configure options using a consistent interface. |
Internally, each symbology maps to a specialized encoder and renderer, but this complexity is hidden behind abstraction layers. This design reduces learning curve, minimizes code duplication, and simplifies long-term maintenance. |

|
9.18 Summary of Symbology Support |
In summary, the OnBarcode Barcode SDK provides comprehensive support for both legacy and modern barcode symbologies. Its implementations adhere closely to international standards while offering practical flexibility for real-world applications. |
By combining broad symbology coverage with rigorous encoding logic and consistent rendering behavior, the SDK serves as a versatile foundation for barcode generation across retail, logistics, healthcare, manufacturing, and mobile computing environments. |