1. The Fundamentals of Barcodes
A barcode is a visual, machine-readable representation of data. First invented in 1948 by Norman Joseph Woodland and Bernard Silver (initially inspired by Morse code drawn as thick and thin lines in the sand), barcodes revolutionized modern commerce by allowing computer systems to instantly identify products, packages, and assets without manual keystroke errors.
When an optical barcode scanner (laser or camera imager) sweeps across a barcode, it measures the varying widths and reflectivity of the alternating dark bars and white spaces, translating those physical optical patterns into binary numbers and text.
2. 1D Linear Barcodes vs. 2D Matrix Codes
Barcodes fall into two primary families:
📊 1D Linear Barcodes
Encode data in a single horizontal dimension using parallel lines. Can be read by simple 1D laser scanners.
- • UPC-A (Retail US/Canada)
- • EAN-13 (Global Retail)
- • Code 128 (Shipping & SKUs)
- • Code 39 (Industrial & Military)
- • ITF-14 (Corrugated Cartons)
🔲 2D Matrix Codes
Encode data in both horizontal and vertical grids. Can store thousands of characters, URLs, and binary files.
- • QR Code (URLs & Mobile WiFi)
- • Data Matrix (Micro-Parts & Pharma)
- • PDF417 (Driver Licenses & IDs)
- • Aztec Code (Transit & Airline Tickets)
3. Common Symbologies & How to Choose
Use the matrix below to compare symbologies and instantly create your desired format:
Barcode Symbology Comparison Matrix
Compare density, character capacity, checksums, and ISO standards across all major 1D and 2D formats.
| Symbology | Category | Character Set | Standard / Checksum | Primary Application | Action |
|---|---|---|---|---|---|
| Code 128➔ | Logistics & Shipping | Full 128 ASCII character set (A-Z, a-z, 0-9, and symbols) | ISO/IEC 15417 Modulo 103 check digit (automatically calculated) | Logistics, carton tracking, and container labeling | Create Code 128 |
| UPC-A➔ | Retail & Products | 12 Numeric digits (0-9) | GS1 General Specifications / ISO/IEC 15420 Modulo 10 check digit (3x odd positions + 1x even positions) | Retail point-of-sale checkout in the US and Canada | Create UPC-A |
| EAN-13➔ | Retail & Products | 13 Numeric digits (0-9) | GS1 General Specifications / ISO/IEC 15420 Modulo 10 check digit (1x odd positions + 3x even positions) | Global retail point-of-sale in Europe, Asia, Latin America, and Africa | Create EAN-13 |
| Code 39➔ | Logistics & Shipping | 43 characters: 0-9, A-Z (uppercase only), and symbols (-, ., $, /, +, %, space) | ISO/IEC 16388 Optional Modulo 43 check character | US Department of Defense military supply chain (MIL-STD-129 / LOGMARS) | Create Code 39 |
| Code 93➔ | Logistics & Shipping | 47 characters (0-9, A-Z, 7 special characters), and full ASCII using 2-character sequences | ANSI/AIM BC5 Dual check characters ("C" and "K" modulo 47) | Canada Post delivery tracking and parcel routing | Create Code 93 |
| EAN-8➔ | Retail & Products | 8 Numeric digits (0-9) | GS1 General Specifications / ISO/IEC 15420 Modulo 10 check digit (3x odd positions + 1x even positions) | Small cosmetic products, lipsticks, pencils | Create EAN-8 |
| UPC-E➔ | Retail & Products | 8 Numeric digits (0-9) | GS1 General Specifications / ISO/IEC 15420 Modulo 10 derived from the decompressed 12-digit UPC-A | Small retail packages in the United States and Canada | Create UPC-E |
| ITF-14➔ | Logistics & Shipping | 14 Numeric digits (0-9) | GS1 General Specifications / ISO/IEC 16390 Modulo 10 check digit (3x odd positions + 1x even positions) | Master cartons and outer packaging containers | Create ITF-14 |
| ISBN➔ | Books | 13 Numeric digits (0-9, begins with 978 or 979) | ISO 2108 / Bookland EAN Modulo 10 check digit | Paperback and hardcover book back covers | Create ISBN |
| GS1-128➔ | Logistics & Shipping | GS1 Application Identifiers and alphanumeric data | GS1 General Specifications / ISO/IEC 15417 Modulo 103 check digit plus GS1 FNC1 start character | SSCC (Serial Shipping Container Code) pallet labels | Create GS1-128 |
| Codabar➔ | Other | Numeric digits (0-9), 6 symbols (-:.$/+), and start/stop characters (A, B, C, D) | ANSI/AIM BC3 Self-checking (optional Modulo 16) | Blood bank tube labeling (ISBT 128 legacy systems) | Create Codabar |
| MSI➔ | Other | Numeric digits (0-9) | MSI Symbology Standard Modulo 10, Modulo 11, or Modulo 1010 check digits | Supermarket retail shelf price tags and restocking labels | Create MSI |
| Pharmacode➔ | Other | Single integer value from 3 to 131070 (standard) or 3 to 64570080 (two-track) | Laetus Pharmacode Standard Binary positional value (no parity check digit) | Pharmaceutical packaging lines to verify medicine boxes, bottle labels, and instruction leaflets | Create Pharmacode |
| Data Matrix➔ | 2D Codes | Full ASCII, ISO 8859-1 (extended ASCII), and binary data | ISO/IEC 16022 Reed-Solomon error correction (ECC 200) | Direct Part Marking (DPM) on aerospace and automotive steel parts | Create Data Matrix |
| PDF417➔ | 2D Codes | Full ASCII, binary data, numbers, and text (up to 1.1 kilobytes per symbol) | ISO/IEC 15438 Configurable Reed-Solomon error correction levels (Level 0 to Level 8) | US & Canadian driver licenses and government ID cards (AAMVA standard) | Create PDF417 |
| Aztec Code➔ | 2D Codes | Full ASCII, byte/binary, and UTF-8 characters | ISO/IEC 24778 Reed-Solomon error correction (adjustable percentage) | Airline electronic boarding passes (IATA specification) | Create Aztec Code |
| QR Code➔ | 2D Codes | Numeric (7,089 chars), Alphanumeric (4,296 chars), Binary (2,953 bytes), Kanji (1,817 chars) | ISO/IEC 18004 Reed-Solomon error correction (L: 7%, M: 15%, Q: 25%, H: 30%) | Website URLs and landing page promotion | Create QR Code |