Other Barcode Symbologies
Beyond the popular EAN, UPC, NDC, and QR codes, there are many other barcode symbologies used across different industries. Each was designed with a specific purpose in mind, from marking silicon wafers to tracking library books. This tutorial covers the history and technical features of these lesser-known formats.
Codabar
Codabar was developed by Pitney Bowes in 1972. It is used to identify items shipped by FedEx, materials in libraries and photo labs, and supplies held in U.S. blood banks. Numbers, letters, and a few symbols can be encoded in the barcode.
Codabar has variable length and no built-in checksum digit, though you can add your own check digit if needed. A typical Codabar structure includes a start symbol denoting the barcode type, several digits identifying the institution and product, and an optional check digit at the end.
Code-39
Code-39 was developed in 1974 by Intermec and was the first alphanumeric barcode symbology. It encodes all 26 roman alphabet characters, digits 0–9, and several special symbols for a total of 43 characters. Code-39 symbols are larger than Code-128 and cannot be used on very small items, but they can be read by the majority of barcode scanning systems.
Code-39 does not include a mandatory check digit — it is self-checking, meaning a single misread bar will not produce a valid character. An optional modulo 43 check digit can be added for extra reliability. The symbology also supports an optional full ASCII charset extension.
Code-93
Code-93 was designed in 1982 by Intermec to provide higher data density and better security than Code-39. Each character is divided into 9 modules and consists of three bars and three spaces, with each bar or space up to 4 modules wide. In addition to the standard 43 characters, Code-93 defines 5 special characters that enable representing all 128 ASCII characters.
Every Code-93 symbol includes two mandatory check characters, making it more robust than Code-39.
Code-128
Code-128 was created in 1981 by Computer Identics. It includes 108 symbols: 103 data symbols, 3 start codes, and 2 stop codes. The symbology uses three character sets — Start-A, Start-B, and Start-C — selected by the start code. Start-C enables numeric-only compaction, encoding two digits per symbol, which makes Code-128 symbols significantly smaller than equivalent Code-39 barcodes.
Code-128 includes a mandatory checksum digit calculated from all encoded symbols. Its compact size makes it suitable for labeling small items.
GS1-128
GS1-128 is a Code-128-based application standard used to encode GS1 data such as best-before dates, batch numbers, quantities, and weights. It uses a series of Application Identifiers (AIs) to structure the data, and compliant software validates input according to the GS1 standard to reduce data-entry errors.
Interleaved 2 of 5
Interleaved 2 of 5 evolved from an earlier symbology simply called Code 2 of 5. It is widely used in the shipping and storage industries, and also to mark film canisters. The name “interleaved” comes from the way data is encoded: both the colored bars and the white spaces between them carry information, allowing more data in less space. Only an even number of digits can be encoded. A check digit is optional.
ITF-14
ITF-14 is based on Interleaved 2 of 5 but adapted to carry Global Trade Item Numbers (GTINs) issued by GS1. It is used primarily on shipping cartons and outer containers. An ITF-14 barcode always contains exactly 14 characters: a packaging indicator digit, a two-digit prefix, a manufacturer identifier, an item identifier, and a check digit. The symbology supports configurable borders (box, bind, or none) to protect the barcode during handling.
Pharmacode
Pharmacode was created in the 1970s by German firm Laetus and is used exclusively in the pharmaceutical industry, mainly for labeling bulk shipments. Each Pharmacode barcode encodes a single number between 3 and 131,070 in binary format, using either one-track or two-track encoding. Pharmacodes can be printed in visible ink or invisibly and read with UV cameras, helping meet regulatory requirements and detect product mix-ups.
Aztec Code
Aztec Code is a 2D matrix barcode invented in 1985 by Robert Hussey and Andrew Longacre. It is named after the resemblance of its central finder pattern to an Aztec pyramid. Unlike most 2D barcodes, Aztec Code does not require a surrounding blank “quiet zone,” which can save space on packaging.
The symbol is built on a square grid with a bulls-eye pattern at its center for locating the code. Data is encoded in concentric square rings around the bulls-eye. The central bulls-eye is 9×9 or 13×13 pixels, and one ring of pixels encodes basic coding parameters. Additional data is added in layers of two rings each.
Aztec Code symbols can encode up to 3,832 digits or 3,067 alphabetic characters, making them among the most compact 2D symbologies. They are commonly used in transportation ticketing (airline boarding passes, train tickets) and government documents.
Data Matrix
Data Matrix codes were developed by International Data Matrix and are free of royalties and license fees. They can be used to mark items as small as a microchip and as large as a boxcar, and are common in the food, electronics, and aerospace industries. Up to 1,556 bytes of data or 2,335 alphanumeric characters can be encoded.
The symbology features a dark L-shaped border that serves as the left and bottom edges of the symbol. Within this border, alternating black and white squares represent binary zeroes and ones. Data Matrix codes can often be read by camera phones with appropriate software installed, and like QR codes, portions of the symbol can still be decoded if damaged.
Data Matrix supports non-square (rectangular) symbol shapes, which can be useful for fitting codes into narrow spaces.
PDF-417
PDF-417 was invented in 1991 by Symbol Technologies, now part of Zebra Technologies. The name comes from “Portable Data File” and the symbology’s structure: “4” refers to the four bars and spaces in each pattern, and “17” refers to the code’s length of 17 units. A total of 929 codewords can be used per symbol.
PDF-417 is a stacked linear barcode rather than a true matrix code. It is organized in rows, each containing a start pattern, a left row indicator with row information, 1 to 30 data codewords in the center, a right row indicator, and a stop pattern. Symbols can be chained together to form longer sequences, and error correction levels are adjustable.
Common uses include shipping labels, inventory management, government-issued identification (such as U.S. driver’s licenses), and airline boarding passes printed on paper.
GS1 DataBar Family
The GS1 DataBar family (formerly known as Reduced Space Symbology, or RSS) includes seven barcode types designed for different needs:
- GS1 DataBar Omnidirectional — retail point of sale, scanned from any direction;
- GS1 DataBar Stacked Omnidirectional — retail POS, stacked version of the above;
- GS1 DataBar Expanded — coupons, encodes additional GS1 data;
- GS1 DataBar Expanded Stacked — coupons with more segments for longer data;
- GS1 DataBar Truncated — healthcare, small footprint;
- GS1 DataBar Limited — healthcare, very small products;
- GS1 DataBar Stacked — healthcare, stacked for narrow items.
All DataBar types encode GTIN-12, GTIN-13, or GTIN-14 data. The Expanded variants can also carry additional GS1 Application Identifiers, encoding up to 74 characters. Expanded Stacked allows you to control the number of display segments, which is useful when fitting barcodes into constrained label spaces.
EAN-8
EAN-8 is a shortened version of EAN-13 designed for small retail products that cannot accommodate a full-sized barcode. It uses the same encoding principles and also includes a check digit. An EAN-8 barcode consists of a two-digit numbering system prefix, a five-digit manufacturer code, and a single check digit. EAN-8 codes cannot be translated into EAN-13 or UPC codes — the same product must be registered separately if it uses both formats.
BC412
BC412 (Binary Code 412) is a specialized symbology used in the semiconductor industry for identifying silicon wafers. It encodes data in a binary format optimized for reading by laser scanners used in cleanroom environments, where codes must survive etching and coating processes.
Making These Barcodes
All of these symbologies, plus many others, can be created and customized using the Barcode software. You can adjust bar widths, colors, text fonts, quiet zones, and export your barcodes as PNG, TIFF, or vector EPS files with print-quality resolution.