Standards/two-track-pharmacode
Two-Track Pharmacode
Overview
Two-Track Pharmacode is the two-track variant of the Laetus PHARMA-CODE packaging-control symbology. Instead of encoding data with two bar widths on a single track, it encodes binary data using two bar heights — short ("half") bars and tall ("full") bars — arranged on two vertical tracks, where short bars can appear above or below the midline 1. This vertical encoding lets a single symbol carry a substantially larger value than one-track Pharmacode while keeping the same print-tolerant, closed-loop character 1.
History
Like one-track Pharmacode, Two-Track Pharmacode was developed by Laetus and is defined in the Laetus PHARMA-CODE Guide 1 2. It shares the same purpose as the one-track code — preventing product/packaging intermixture in pharmaceutical production lines — and the same closed-loop, in-house philosophy described by Laetus for the PHARMA-CODE family 2.
Technical specification
- Encoding. Data is encoded in binary rather than decimal, using two bar heights — short and tall — where the short bars may be positioned above or below the midline 1. The scheme combines the vertical positioning of half bars with full bars to pack two binary tracks into one symbol.
- Value range. A Two-Track Pharmacode symbol can represent an integer from 3 to 64,570,080 — far larger than one-track Pharmacode's 3–131,070 ceiling 1.
- No check digit. No check digit is included 1.
- Quiet zone. A quiet zone of 6 mm is required on either side of the symbol 1.
- Robustness. As part of the PHARMA-CODE family the symbology is designed to remain readable despite printing imperfections and to support colour printing for packaging verification 2.
Use cases
Two-Track Pharmacode serves the same in-house packaging-control and verification role as one-track Pharmacode — matching package components and confirming the correct product, insert and packaging — but is chosen when the application needs to encode a larger numeric range than the one-track code can hold 1 2.
Implementations
- Zint (github.com/zint/zint) — C, 771 stars, active 2026. Explicitly supports "Pharmacode Two-Track" among 50+ symbologies.
- bwip-js (github.com/metafloor/bwip-js) — JavaScript, 2,381 stars, active 2026. JavaScript port of BWIPP with the PHARMA-CODE two-track encoder.
- BWIPP (github.com/bwipp/postscriptbarcode) — PostScript, 499 stars, active 2026. Barcode Writer in Pure PostScript.
Comparison
The two Laetus PHARMA-CODE variants differ chiefly in how they pack bits. One-track Pharmacode uses two bar widths on a single track and tops out at 131,070 3. Two-Track Pharmacode uses two bar heights across two tracks (short/tall, above/below the midline) and reaches 64,570,080 — roughly 490× the one-track range 1. Both omit a check digit, omit human-readable text in the symbol, and require a 6 mm quiet zone 1 3. Compared with Code 39-based pharmaceutical codes (Code 32, PZN), both Pharmacode variants remain self-contained binary print-control codes with no national drug registry behind them.
Status
Two-Track Pharmacode remains an active member of the Laetus PHARMA-CODE family for high-capacity in-house packaging control, and is supported by current tooling including Zint and bwip-js (both actively maintained as of 2026) 1.
Sources
1 PHARMA-CODE - Two-Track - BarTender Barcode Guide — Seagull Scientific, accessed 2026 2 PHARMA-CODE Series #1: Introduction to Laetus PHARMA-CODE — Laetus GmbH 3 PHARMA-CODE - One-Track - BarTender Barcode Guide — Seagull Scientific, accessed 2026
Deployments
No country reports mention this standard by name.
Regions / aggregations not mapped to a single country
- Universal