OnBarcode Barcode SDK Comprehensive Technical Analysis |
Part 2 of 17: Linear (1D) Barcode Symbologies Technical Foundations and SDK Support |
1. Overview of Linear Barcode Support in OnBarcode Barcode SDK |
1.1 Definition of Linear Barcodes |
Linear barcodes, also known as one-dimensional or 1D barcodes, represent data using a sequence of vertical bars and spaces of varying widths arranged along a single horizontal axis. Information is encoded through: |
1. Bar width variations |
2. Space width variations |
3. Relative patterns of bars and spaces |
4. Mandatory start and stop symbols |
5. Optional or mandatory checksum characters |
OnBarcode Barcode SDK implements linear barcode generation by abstracting these structural elements into configurable properties and standardized encoding pipelines. |

|
1.2 Importance of 1D Barcodes in Enterprise Systems |
Despite the widespread adoption of 2D barcodes, linear barcodes remain dominant in many industries due to: |
1. Extremely high scanner compatibility |
2. Lower printing resolution requirements |
3. Faster decoding under poor lighting or motion |
4. Deep entrenchment in legacy systems |
5. Regulatory mandates in retail and logistics |
The SDK reflects this reality by providing broad and stable support for major linear symbologies. |

|
1.3 Design Approach for Linear Barcodes in the SDK |
The SDK treats each linear barcode symbology as a distinct encoder module that shares a common rendering pipeline. This architecture allows: |
1. Consistent property handling across symbologies |
2. Shared image rendering logic |
3. Centralized error handling |
4. Predictable output behavior |
Each symbology implementation encapsulates: |
1. Character set definition |
2. Encoding pattern tables |
3. Checksum algorithms |
4. Quiet zone requirements |
5. Module width constraints |

|
2. Code 39 (Code 3 of 9) |
2.1 Historical and Industrial Background |
Code 39 is one of the earliest alphanumeric barcode symbologies and remains widely used in: |
1. Automotive industry |
2. Defense and aerospace |
3. Government labeling |
4. Industrial asset tracking |
Its longevity is due to its simplicity and tolerance for low-quality printing. |
2.2 Encoding Characteristics |
Code 39 encodes data using: |
1. 9 elements per character (5 bars, 4 spaces) |
2. Exactly 3 wide elements per character |
3. Inter-character narrow space |
4. Mandatory start and stop character represented by an asterisk |
The symbology supports: |
1. Uppercase letters A–Z |
2. Digits 0 |
3. Limited punctuation characters |
2.3 Extended Code 39 |
Extended Code 39 expands the character set to include full ASCII by encoding pairs of Code 39 characters. This increases symbol length but enables broader data representation. |
2.4 SDK-Level Configuration |
Within OnBarcode Barcode SDK, Code 39 generation typically involves: |
1. Selecting the Code 39 symbology |
2. Providing the data string |
3. Enabling or disabling checksum |
4. Choosing standard or extended mode |
The SDK ensures automatic insertion of start and stop symbols and validates character legality. |

|
3. Code 128 |
3.1 Purpose and Adoption |
Code 128 is a high-density linear barcode designed to encode full ASCII characters efficiently. It is extensively used in: |
1. Logistics |
2. Shipping labels |
3. GS1-128 applications |
4. Warehousing systems |
3.2 Code Sets and Switching Logic |
Code 128 supports three code sets: |
1. Code Set A (control characters and uppercase text) |
2. Code Set B (uppercase, lowercase, and punctuation) |
3. Code Set C (numeric pairs for high density) |
The SDK handles automatic or developer-controlled code set switching. |
3.3 Checksum and Symbol Structure |
Each Code 128 symbol includes: |
1. Start code |
2. Encoded data symbols |
3. Checksum symbol |
4. Stop pattern |
Checksum calculation is mandatory and performed internally by the SDK. |
3.4 SDK Abstraction |
OnBarcode Barcode SDK simplifies Code 128 usage by: |
1. Automatically optimizing code set selection |
2. Managing checksum computation |
3. Validating input strings |
4. Rendering compliant quiet zones |
This abstraction significantly reduces developer error. |

|
4. GS1-128 (formerly UCC/EAN-128) |
4.1 Relationship to Code 128 |
GS1-128 is not a distinct barcode symbology but a specialized application of Code 128 governed by GS1 rules. It introduces: |
1. Application Identifiers (AIs) |
2. Structured data formats |
3. Mandatory FNC1 usage |
4.2 Structured Data Encoding |
GS1-128 encodes multiple data elements in a single symbol, such as: |
1. Product identifiers |
2. Batch numbers |
3. Expiration dates |
4. Serial numbers |
4.3 SDK Handling of GS1 Rules |
The SDK enforces GS1-128 requirements by: |
1. Automatically inserting FNC1 |
2. Validating AI formats |
3. Ensuring correct data sequencing |
4. Preventing invalid character usage |
This is critical for regulatory and supply chain compliance. |

|
5. EAN-13 |
5.1 Retail Industry Standard |
EAN-13 is one of the most widely used retail barcodes globally. It encodes: |
1. Country or numbering organization |
2. Manufacturer identifier |
3. Product code |
4. Check digit |
5.2 Symbol Structure |
EAN-13 consists of: |
1. Left guard pattern |
2. Left data digits |
3. Center guard pattern |
4. Right data digits |
5. Right guard pattern |
The first digit determines parity patterns for the left side. |
5.3 SDK Implementation Details |
OnBarcode Barcode SDK: |
1. Computes the check digit automatically |
2. Enforces numeric-only input |
3. Handles parity encoding internally |
4. Supports human-readable text rendering |

|
6. UPC-A and UPC-E |
6.1 UPC-A |
UPC-A is primarily used in North America for retail products. It encodes 12 digits and uses a structure similar to EAN-13. |
6.2 UPC-E Compression Logic |
UPC-E compresses UPC-A data by eliminating redundant zeros. The SDK handles: |
1. Automatic expansion and compression |
2. Validity checking |
3. Check digit calculation |
6.3 SDK-Level Transparency |
Developers interact with UPC-A and UPC-E using simple numeric strings, while the SDK manages the complex encoding rules. |

|
7. Interleaved 2 of 5 (ITF) |
7.1 Numeric-Only High-Density Barcode |
Interleaved 2 of 5 encodes numeric data in pairs, with: |
1. Bars representing one digit |
2. Spaces representing the second digit |
7.2 Use Cases |
Common applications include: |
1. Carton labeling |
2. Warehousing |
3. Distribution systems |
7.3 SDK Handling |
The SDK ensures: |
1. Even number of digits |
2. Optional checksum support |
3. Proper bearer bar rendering if enabled |

|
8. Codabar |
8.1 Legacy Applications |
Codabar is used in: |
1. Libraries |
2. Blood banks |
3. Logistics systems |
It supports simple encoding and start/stop characters. |
8.2 SDK Support Characteristics |
OnBarcode Barcode SDK: |
1. Validates start/stop symbols |
2. Allows optional checksum |
3. Supports custom bar width ratios |

|
9. MSI (Modified Plessey) |
9.1 Inventory-Oriented Symbology |
MSI is a numeric-only barcode often used for internal inventory systems. |
9.2 Checksum Variants |
MSI supports multiple checksum algorithms, including: |
1. Mod 10 |
2. Mod 11 |
3. Combined checksums |
The SDK allows developers to select the desired variant. |

|
10. POSTNET and PLANET |
10.1 Postal Automation |
These barcodes are used by postal services for mail sorting. |
10.2 SDK Behavior |
The SDK automatically: |
1. Encodes ZIP or routing codes |
2. Calculates check digits |
3. Applies correct bar height patterns |

|
11. Rendering and Output Considerations for Linear Barcodes |
11.1 Module Width and Scaling |
The SDK allows precise control over: |
1. Narrow bar width |
2. Wide-to-narrow ratios |
3. Overall symbol width |
11.2 Quiet Zones |
Each symbology has mandatory quiet zone requirements. The SDK ensures compliance unless explicitly overridden. |

|
12. Error Handling and Validation |
The SDK validates: |
1. Character legality |
2. Length constraints |
3. Checksum requirements |
Invalid input results in predictable exceptions or error states. |

|
13. Summary of Part 2 |
This part has provided a deep examination of: |
1. Linear barcode fundamentals |
2. Major 1D symbologies supported by the SDK |
3. Encoding rules and structural constraints |
4. How OnBarcode Barcode SDK abstracts complexity |
5. Rendering and validation mechanisms |

|
In Part 3, we will transition into two-dimensional (2D) barcode symbologies, beginning with QR Code, Data Matrix, and PDF417, and explore how the SDK manages high-density encoding, error correction, and symbol layout. |