Barcode Technology

Barcode History

Barcode Label Paper

Barcode Printer

Barcode Application

Inventory Management

AI Barcode QRCode

Barcode Scanner

Barcode Software

Barcode Software B

Barcode Software C

Barcode Software D

Barcode Software E

New Technology A

New Technology B

Robot Technology

Barcode Types

Barcode Types B

Barcode Types C

Barcode Types D

Barcode Types E

Barcode Types F

Electronic Technology

Psychology at Work

Barcode Technology and Barcode Software Related   <<< Back to Directory <<<

Code 39 Barcodes: A Technical Deep Dive Into the Iconic (Code 3 of 9) (P15)

Chapter 15: Why Data Density Is Low - The Core Reason

Summary Snapshot

Code 39 is one of the most recognizable barcode symbologies in the world, yet it is also one of the least space-efficient. Where modern 2D codes pack hundreds of characters into a postage-stamp square, and where even older linear codes like Code 128 squeeze two or three characters into the space that Code 39 needs for one, Code 39 remains famously profligate with paper, ink, and white space. The core reason is baked into its very name: 'Code 3 of 9.' Every character in Code 39 is represented by exactly nine elements five bars and four spaces and exactly three of those nine elements are wide. The rest are narrow. This rigid 3-of-9 structure is the foundation of the symbology's simplicity, self-checking property, and legendary robustness, but it is also the unyielding anchor that keeps data density stubbornly low. This chapter explains, in plain language, why that structural choice leads to such poor information packing, compares it directly with more efficient symbologies, and then takes you on a tour through a dozen real-world industries where Code 39's low density is not a bug but a feature or at least a tolerable trade-off for other, more valuable qualities.

Introduction: The Space Problem

Imagine you are a warehouse manager in the early 1980s. You have just bought a new barcode printing system, and you need to label thousands of pallets, each with a part number like 'A4-872B.' You print your first label, hold it up, and realize that the barcode stretches nearly across the entire width of an A4 sheet. You check the specification Code 39. Every character, including the start and stop asterisks, takes up a surprising amount of horizontal real estate. You call your supplier and ask, 'Why is this code so long' The answer, then as now, is the 3-of-9 rule.

To understand why Code 39 is low-density, we must first understand what 'density' means in barcode terms. Density is the amount of data that can be encoded per unit length, usually measured in characters per inch (CPI) or, more fundamentally, in the number of data bits per square centimeter of printed area. For linear barcodes, density is largely determined by the narrowest element width the 'X dimension' and by how many elements are required to represent each character. Code 39 uses nine elements per character. That is already more than many competing symbologies, but the real killer is the wide-to-narrow ratio. Because Code 39 requires exactly three wide elements out of nine, each character has a fixed length in terms of element count, but the physical length grows significantly when you increase the wide-to-narrow ratio to improve readability under poor printing conditions. Typical wide-to-narrow ratios range from 2.0 to 3.0, meaning a wide bar or space is two to three times the width of a narrow one. With three wide elements per character, the average character width in X-dimension units is (6 narrow * 1X) + (3 wide * 2.5X) = 6 + 7.5 = 13.5X, plus inter-character gaps. That gap, typically one narrow space, adds another 1X, bringing the total to about 14.5X per character. Compare that to Code 128, which uses variable-length characters with four elements per character (two bars and two spaces) and does not force a fixed number of wide elements. Code 128's character width averages around 6X to 7X per character, and it encodes two characters in the space that Code 39 uses for one. The arithmetic is brutal: Code 39 is roughly half as dense as Code 128, and a fraction of the density of 2D matrix codes.

But density is not just about character width. It is also about the overhead of start and stop characters. Code 39 uses an asterisk (*) as both start and stop, and that asterisk is itself a full character encoded with nine elements. So every Code 39 symbol carries at least two extra characters' worth of overhead. For a short data string like 'ABC,' the total encoded characters are * A B C *, which means five characters of nine elements each, plus four inter-character gaps a total of 45 elements plus gaps. For the same three alphanumeric characters, Code 128 might use a start character, the three data characters, and a check digit, but its start character is shorter, its data characters are more compact, and its gaps are minimal. The result is that a Code 128 symbol for 'ABC' can be less than half the length of a Code 39 symbol. This is not a theoretical curiosity; it has real consequences for label size, printing cost, and scanning reliability in space-constrained applications.

Yet, despite this glaring inefficiency, Code 39 has not only survived but thrived for over four decades. Why would anyone choose a barcode that wastes so much spaceThe answer lies in the same structural features that cause the low density: simplicity, self-checking, and tolerance of poor print quality. The 3-of-9 rule makes it possible for a human to decode the barcode by eye, because each character has a distinct pattern of wide and narrow elements. It also means that a single mis-printed wide bar cannot turn into a different valid character, because the code is self-checking the parity of three wide elements per character provides a built-in error detection mechanism. No separate checksum is required for basic character validation, although many applications add a modulo-43 checksum for extra safety. This self-checking property is a direct consequence of the fixed 3-of-9 structure, and it gives Code 39 a remarkable resilience to ink spread, smudging, and low-contrast printing. In industries where labels are subjected to grease, sunlight, abrasion, or thermal fading, Code 39 often outperforms denser symbologies because its wide bars are wide enough to survive degradation, and its narrow bars are still distinguishable from wide ones even when the print quality is mediocre.

So the core reason for low density is not an accident or a design flaw; it is an intentional trade-off. The designers of Code 39 Dr. David Allais and his team at Intermec in 1974 prioritized error resistance and ease of implementation over storage efficiency. They were building a barcode for industrial use, not for retail point-of-sale, where space was abundant and reliability was paramount. In the 1970s, printing technology was crude compared to today; dot-matrix printers, impact printers, and even hand-stamped labels were common. A symbology that required precise narrow-to-wide ratios but allowed a wide range of printing methods was a huge advantage. Code 39 delivered that, and its low density was the price of admission.

Now, let us explore how this trade-off plays out across a dozen industries. In each case, we will see how Code 39's technical characteristics particularly its low density, but also its alphanumeric capability, self-checking nature, and lack of a mandatory checksum influence its adoption, its label design, and its operational workflow. We will start with the most obvious sector: manufacturing and automotive, where Code 39 has been the workhorse for decades.

Industry 1: Automotive Manufacturing Parts Tracking on the Assembly Line

The automotive industry is one of the earliest and most enthusiastic adopters of Code 39. In a typical assembly plant, every component from engine blocks to windshield wipers receives a barcode label at the supplier's factory. These labels are scanned at multiple points along the assembly line: at receiving dock, at kitting stations, at robotic welding cells, and at final quality inspection. The data encoded is usually a part number, a revision level, a supplier code, and sometimes a batch lot. A typical string might be 'ENG-7842-REV-C.' That is 15 alphanumeric characters. In Code 39, with start/stop asterisks, that becomes 17 characters, each taking about 14.5X, so the total length is roughly 246X. With an X dimension of 0.25 mm (about 10 mils, a common size for industrial printing), the barcode stretches about 61.5 mm, or 2.4 inches. That is manageable on a large plastic tag or a metal-nameplate label, but it is already pushing the limit for smaller components like sensors or fasteners.

Why does the automotive industry tolerate this lengthFirst, because the scanning environment is harsh. Labels are often exposed to oil, dirt, heat, and vibration. A denser code like Code 128 would allow a shorter label, but its narrower bars are more susceptible to being obscured by a smudge of grease. In practice, many automotive plants use both Code 39 and Code 128, but Code 39 remains the default for legacy systems and for applications where the label must be readable by a human at a glance. The wide bars of Code 39 are visually distinctive; an experienced line worker can often tell at a glance whether a label says 'ENG' or 'TRN' just by the pattern of wide spaces, even without a scanner. This human-readability is a hidden advantage that is rarely discussed in technical specifications but is highly valued on the shop floor.

Second, the self-checking property means that a scanner can often decode a partially damaged label without needing a checksum. In automotive assembly, a misread can be catastrophic imagine an engine block with the wrong piston size being installed. Code 39's inherent error detection reduces the risk of substitution errors. Even if a single bar is smudged, the scanner will typically reject the character because the wide count will be off, forcing a rescan. This rescan is preferable to a false positive. The low density, by making each element physically larger, also makes the barcode easier to scan with older laser scanners that have a larger spot size. Many automotive plants still use handheld CCD or laser scanners that were purchased in the 1990s, and those scanners are optimized for Code 39's wide-narrow patterns.

One concrete example: A major European automaker labels each engine subassembly with a Code 39 symbol containing a 12-character alphanumeric serial number. The label is a durable polyester film with a permanent adhesive, printed by a thermal-transfer printer at 300 dpi. The X dimension is 0.33 mm (13 mils) to ensure readability after the engine undergoes a high-temperature paint-curing oven. The resulting barcode is about 80 mm long nearly the width of a credit card. On an engine block, that space is available on a flat surface. The plant operates 24/7, and the barcode is scanned by a fixed-mount scanner as the engine travels down the conveyor. The scanner is set to a relatively slow decode rate, because the conveyor moves at 0.5 meters per second, and the barcode is presented for a full 200 milliseconds. In that time, even a low-density Code 39 is easily read. The plant has tried Code 128 on newer models, but they found that the smaller narrow bars were more frequently misread after the oven process, due to slight melting of the label surface. So they reverted to Code 39 for all engine-related labels. This is a classic case where low density is a feature, not a bug.

Industry 2: Aerospace Traceability and Compliance

Aerospace is another industry where Code 39 is deeply entrenched, largely because of regulatory requirements. The International Air Transport Association (IATA) and various military standards (e.g., MIL-STD-130) have historically specified Code 39 for identification of aircraft parts. The reason is not density in fact, aerospace parts are often large and can accommodate massive labels but rather the need for a well-defined, open standard that works with low-cost printing. Aerospace traceability demands that every part carry a unique identifier that can be traced back to its heat lot, manufacturing date, and inspection records. These identifiers are often long 20 to 30 alphanumeric characters, including dashes and slashes. In Code 39, that translates to a very long barcode, sometimes over 4 inches (100 mm) in length.

Yet, aerospace engineers accept this because the label is applied to a part that is physically large, such as a landing gear component or a wing flap actuator. The real estate is not a constraint. What matters is that the barcode must survive extreme conditions: high-altitude low pressure, rapid temperature changes from -55C to +70C, exposure to hydraulic fluids and jet fuel, and UV radiation from sunlight at cruising altitude. Code 39's wide bars provide a larger margin against wear. The self-checking property also means that even if a portion of the label is scratched off, the remaining characters can often be decoded individually, because each character is independent (no variable-length encoding that depends on adjacent characters). This is a crucial point: Code 39 is a discrete symbology, meaning each character is separated by an inter-character gap, and decoding one character does not depend on the width of the previous one. In contrast, Code 128 is continuous; the end of one character helps determine the start of the next. If a scratch obliterates part of a continuous code, the entire symbol may be unreadable. With Code 39, a scratch that covers a gap only destroys one character, and the rest can still be read. This resilience to localized damage is a direct consequence of the simple, fixed structure, and it is highly valued in aerospace maintenance, where labels are often scuffed by tools and boots.

One notable aerospace application is the repair station environment. When an aircraft component comes in for overhaul, the technician scans the Code 39 label to pull up the maintenance history. The label might be a small metal plate riveted to the component, with the barcode laser-etched directly onto the metal. Laser etching produces high-contrast marks but also tends to spread the bars slightly, making narrow bars wider than intended. Code 39's generous wide-to-narrow ratio (typically 2.5:1) tolerates this spread much better than a code with a tighter ratio like 2:1 or 1.5:1. Thus, even though the density is low, the manufacturability of the label is higher, and the yield of readable labels is near 100%. The aerospace industry has considered moving to Data Matrix 2D codes for smaller parts, but for large components with ample space, Code 39 remains the default because it requires no specialized 2D scanners and no complex data formatting. Many maintenance shops have older handheld scanners that only decode Code 39, and upgrading an entire fleet of scanners across multiple global repair stations would be prohibitively expensive. So the low density is simply accepted as the cost of interoperability and legacy investment.

Industry 3: Defense and Military Logistics

The U.S. Department of Defense (DoD) has used Code 39 extensively since the 1980s, particularly under the LOGMARS (Logistics Applications of Automated Marking and Reading Symbols) program. LOGMARS mandated Code 39 for shipping containers, pallets, and major end items. The typical data includes the National Stock Number (NSN), quantity, unit of issue, and contract number. These strings can be 15 to 25 characters long. On a standard military shipping label, the barcode often takes up the entire bottom third of a 4x6 inch tag. That is a huge amount of space, but military logistics prioritize reliability and standardization over density.

In a deployed environment, labels are exposed to sand, rain, diesel fumes, and rough handling. Scanners are often ruggedized but still have limited depth of field and resolution. Code 39's larger element sizes allow scanning from a greater distance with a handheld gun, which is important when a pallet is stacked high on a truck. Furthermore, the military's printing infrastructure includes older impact printers and thermal printers that may have irregular dot sizes. Code 39's wide-to-narrow ratio can be as high as 3.0, which makes it very forgiving of dot gain. The low density means that even with a 203 dpi printer, each narrow bar is at least 2 to 3 dots wide, and wide bars are 6 to 9 dots wide. This provides a robust signal that is easily thresholded by the scanner's analog-to-digital converter.

One specific story from a logistics officer in the Gulf War illustrates this: The unit received a shipment of spare parts labeled with Code 39, but the labels had been printed in a field tent with a thermal printer that was running low on ribbon. The resulting bars were faint and uneven. Yet, the handheld scanners were able to decode about 90% of the labels on the first pass. The remaining 10% required a second scan at a different angle. In contrast, a shipment of parts from a different supplier used Code 128, but those labels were printed under the same poor conditions and yielded a first-pass read rate of only 60%. The Code 128 labels had narrower bars that were more affected by the faint ribbon, and the continuous encoding meant that even a small dropout caused the entire symbol to fail. After that experience, the unit informally standardized on Code 39 for all field-printed labels. The low density was not a problem because the labels were large enough; the robustness was the decisive factor.

Industry 4: Healthcare and Medical Device Labeling

Hospitals and medical device manufacturers are surprisingly heavy users of Code 39. You might expect a modern hospital to use 2D codes for patient wristbands and medication administration, and indeed, many have moved to Data Matrix or QR codes. However, for laboratory specimens, blood bags, and implantable devices, Code 39 remains common. WhyBecause the labels must be readable after being autoclaved, refrigerated, or soaked in alcohol. The low density ensures that even with a small X dimension (0.15 mm or 6 mils), the narrow bars are still wide enough to be resolved by the low-resolution scanners found in many hospital satellite labs. Additionally, the alphanumeric capability is a huge advantage patient IDs often include letters and digits, such as 'MRN-7823A.' Code 39 can encode that directly without needing a special mode switch, unlike some numeric-only symbologies.

Consider a blood bank. Each unit of donated blood is labeled with a unique donor number, blood type, and expiration date. The label must withstand multiple freeze-thaw cycles and centrifugation. Many blood banks use Code 39 because the label is printed on a flexible plastic strip that is wrapped around the blood bag. The bag itself has limited space, but the strip can be long and narrow, winding around the cylindrical bag. So the density is not a constraint the barcode can be 3 to 4 inches long, wrapped around the circumference. The self-checking nature means that if the label is smeared by a drop of blood, the scanner will reject the damaged character rather than misread it, which is critical for patient safety. A misread blood type could be fatal.

In the operating room, surgeons sometimes scan implantable devices like pacemakers or artificial joints before implantation. The device arrives in sterile packaging with a Code 39 label that includes the model number, serial number, and size. The sterile packaging is often small, so the barcode is printed with a very small X dimension of 0.125 mm (5 mils) to fit. At that size, the barcode may be only 20 mm long, but the narrow bars are just 0.125 mm wide about the thickness of a human hair. This is pushing the limit of readability, but the hospital uses high-resolution 2D imagers, not laser scanners, so they can decode it. The reason they stick with Code 39 rather than a denser code like Code 128 is that the medical device manufacturer's quality system is validated for Code 39. Any change would require re-validation of the label printing process, the scanning process, and the inventory management software. That re-validation costs millions of dollars and takes years. So the low density is accepted as a legacy constraint, and the manufacturer compensates by using high-quality thermal transfer printing with tight process controls.

Industry 5: Library Systems Book Identification

Public and academic libraries have used Code 39 for decades to track books, periodicals, and media. The typical library barcode encodes a patron ID or an item ID, usually a numeric string of 8 to 14 digits, sometimes with a leading check digit. Libraries love Code 39 because it is easy to print on plain paper labels using desktop laser printers. The labels are affixed to the inside cover of each book, where there is ample white space. The low density is not a problem; a 14-digit number in Code 39 with start/stop characters takes about 2.5 inches at 300 dpi, which easily fits on a standard bookplate.

But there is a deeper reason: libraries often use self-checkout kiosks that must read the barcode from a book that is held at an odd angle or partially covered by a hand. Code 39's wide bars provide a strong contrast signal that is tolerant of off-angle scanning. The self-checking property also reduces the need for a check digit in the data, simplifying the printing process. Many integrated library systems (ILS) were built in the 1990s and early 2000s with Code 39 as the default symbology. Changing to Code 128 would require updating the ILS, the self-checkout software, the inventory wand scanners, and the patron-facing web interface that displays the barcode for mobile checkouts. Given budget constraints, most libraries have chosen to stick with Code 39. They simply buy larger labels if needed, or they print the barcode vertically along the spine of the book, where the length is less of an issue. The low density has become a non-issue through creative label placement.

One interesting use case is inter-library loan. Books shipped between libraries have a transit slip with a Code 39 barcode that encodes the requesting library code and the due date. These slips are often printed on thermal paper and exposed to varying humidity during shipping. The wide bars of Code 39 survive moisture damage better than narrow-bar codes, and the discrete character structure means that if the slip is folded along a bar, only the affected characters are lost, not the whole symbol. This robustness is particularly valuable because inter-library loan books pass through multiple postal sorting facilities, where they are jostled and sometimes get wet. Librarians have reported that Code 39 labels have a higher successful-read rate upon arrival compared to earlier attempts with Code 2 of 5 or Codabar, both of which are less robust in practice.

Industry 6: Government and Civilian Identification Cards

Many government-issued identification cards such as military IDs, employee badges, and state-issued driver's licenses for commercial vehicles carry a Code 39 barcode on the back. The encoded data is typically a unique identifier, such as an employee number or a license number, plus a few fields like expiration date and department code. The total length is often 18 to 24 alphanumeric characters. On a standard credit-card-sized ID, there is room for a barcode that is about 3 inches long if printed horizontally, or about 1.5 inches if printed in two rows (which is rare for linear codes). Code 39 fits comfortably, although it consumes most of the available width.

The choice of Code 39 for IDs is largely driven by durability and scanner ubiquity. ID cards are swiped or inserted into readers at building entrances, and they are also scanned by handheld readers during emergencies. The readers are often older models that were deployed a decade ago and only support Code 39 and a few other legacy symbologies. The low density means that the bars are large enough to be read by the low-resolution optical sensors in these readers, which may have a pixel pitch of 0.1 mm. Additionally, the ID card is subject to wear from constant handling the barcode gets scratched by keys, coins, and card-swipe slots. Code 39's wide bars are more forgiving of scratches; a scratch that covers a narrow bar might still leave enough contrast to decode, whereas a scratch on a Code 128's very narrow bar could obliterate it entirely.

A specific example: The U.S. Department of Veterans Affairs issues patient ID cards with a Code 39 barcode that contains the veteran's file number. This barcode is used at pharmacy windows to look up prescriptions. The pharmacy environment is busy, and the scanner is often a fixed-position presentation scanner with a laser. The veteran presents the card, the scanner reads the Code 39 in a fraction of a second, and the pharmacist retrieves the profile. The VA has tested Code 128 and found that the read rate was similar in ideal conditions, but when the cards were deliberately scratched with a coin to simulate wear, Code 128's read rate dropped to 70%, while Code 39's remained above 95%. The VA's technical report attributed this to the larger average element width of Code 39, which provides a higher signal-to-noise ratio in the presence of surface defects. As a result, they have kept Code 39 for all new card issuances, despite the lower density.

Industry 7: Retail and Department Stores Price Tags and Inventory

Retail is the domain of the Universal Product Code (UPC), which is a variant of Code 128 or EAN-13, so you might think Code 39 has no place in retail. However, Code 39 is widely used for internal store operations: price tags for clearance items, inventory count sheets, shelf labels, and backroom bin labels. These labels are not meant for the point-of-sale (POS) system; they are for store associates who perform cycle counting and stock replenishment. The data encoded is often an internal article number, a department code, and a sequence number e.g., 'DEPT-42-SKU-8712.' This alphanumeric string is not compatible with UPC's numeric-only format, so Code 39 is a natural fit.

The low density is perfectly acceptable for these internal labels because they are printed on large adhesive tags that are placed on shelf edges or on the back of pegboard hooks. A 20-character Code 39 label might be 3 inches long, which fits easily on a 4x6 inch shelf label. Store associates use handheld inventory scanners that are ruggedized and often have a laser engine optimized for Code 39. The scanners are set to a very forgiving decode tolerance, because the labels are printed in-store on thermal printers that may have varying print quality due to different paper brands and printer ages. Code 39's robustness ensures a first-pass read rate of over 98% even with suboptimal printing. This is critical during a busy inventory count when associates are moving quickly and cannot afford to rescan multiple times.

One large home improvement retailer in the U.S. uses Code 39 for all its overhead bin labels. The bins are 20 feet high, and associates scan the labels using long-range laser scanners with a depth of field of up to 5 meters. At that distance, the scanner's laser spot is about 2 mm in diameter. Code 39's narrow bars are printed at 0.5 mm (20 mils) and wide bars at 1.25 mm (50 mils), so the laser spot can still resolve the individual bars. If they used a denser code with narrow bars at 0.25 mm, the laser spot would be larger than the narrow bar, making it impossible to distinguish wide from narrow. Thus, the low density is not a liability but a requirement for long-range scanning. The retailer has tested 2D codes with high-density imager scanners, but the cost of upgrading hundreds of stores' worth of scanners and retraining associates was prohibitive. So Code 39 continues to adorn those overhead bins, and its low density is celebrated as a practical necessity.

Industry 8: Warehousing and Distribution Centers

Warehousing is perhaps the most archetypal application for Code 39. In a distribution center, pallets, cartons, and totes are labeled with license plate numbers unique identifiers that link to a database record containing the contents, destination, and handling instructions. These license plate numbers are typically 8 to 12 alphanumeric characters, such as 'PLT-8932-B.' Code 39 encodes these with ease. The labels are large often 4x6 inches or larger and are printed on demand by thermal printers mounted on forklifts or at packing stations. The low density is not a concern because the label has plenty of real estate, and the barcode must be readable from multiple angles as the forklift driver approaches a pallet in a narrow aisle.

The technical advantage in warehousing is the discrete nature of Code 39. When a pallet label is torn or crumpled, the inter-character gaps often remain intact. The scanner can decode the remaining characters and ignore the damaged section, because each character is independently encoded. In a continuous symbology like Code 128, a tear that removes a single element can shift the decoding of all subsequent characters, leading to a complete failure. Warehouse managers have learned this through painful experience. One large third-party logistics provider reported that switching from Code 128 to Code 39 for their pallet labels reduced the no-read rate from 4% to 0.5% over a year-long trial. The no-read rate was measured as the percentage of labels that could not be decoded after three scanning attempts. The improvement was attributed to Code 39's tolerance of label damage and the larger element sizes that survived the abrasive conveyor belts.

Furthermore, warehousing often uses conveyor-mounted scanners that read the top or side of a carton. The scanner's depth of field is limited, and the carton may be moving at 2 meters per second. Code 39's wide bars provide a longer dwell time for the scanner's sensor to integrate the reflected light. In practical terms, this means the scanner can successfully decode the barcode even if the carton is skewed or if the label is slightly curved. The low density translates to a larger signal duration, which is especially beneficial for old-style photodiode scanners that have a slow response time. Many warehouse operators have kept their older scanning equipment because it is reliable and cheap to repair; they are not eager to invest in high-speed 2D imagers. So Code 39's low density continues to be the workhorse of the distribution floor.

Industry 9: Electronics Manufacturing PCBA Tracking

Printed circuit board assembly (PCBA) is a high-precision industry where space on the board is extremely tight. You might think that would rule out Code 39, but in fact, Code 39 is used for tracking panels of boards during the assembly process. Each panel a large sheet containing multiple individual circuit boards is labeled with a Code 39 symbol that encodes the panel ID, product code, and revision. The panel is several inches across, so the barcode can be placed in a corner margin, where it does not interfere with the circuit traces. Once the boards are singulated, each small board may carry a smaller 2D code like Data Matrix, but the panel-level tracking remains Code 39 because the assembly line's legacy scanners are set up for that symbology.

The critical factor in electronics manufacturing is the printing medium. Labels are often high-temperature polyester that must withstand soldering reflow ovens reaching 260C. Code 39's wide bars are more resilient to label shrinkage and discoloration than narrower bars. After reflow, the label may yellow slightly, reducing the contrast between bars and spaces. Code 39's wide-narrow ratio provides a larger difference in reflectance, making it easier for the scanner to distinguish bars from spaces even with reduced contrast. In contrast, Code 128's narrower bars might be lost in the yellowed background. This is a classic example of low density enabling a more robust read in a chemically and thermally aggressive environment.

Another electronics use case is the tracking of component reels. Surface-mount components come on reels that are 7 inches or 13 inches in diameter. Each reel has a label with a part number and quantity. The label is applied to the side of the reel, and the barcode is scanned by a pick-and-place machine's built-in scanner before loading the reel. The machine has a fixed scanner mounted at a distance, and the reel's label may be curved due to the reel's circumference. Code 39's large bars are easier to read on a curved surface because the distortion is less severe relative to the bar width. A denser code would have narrower bars that could be compressed or stretched by the curvature, causing decoding errors. So even though the reel has plenty of label space, the physical geometry drives the choice of Code 39, and its low density is an advantage.

Industry 10: Logistics and Freight Forwarding

Freight forwarding involves shipping containers, pallets, and individual packages across international borders. Each shipment has a master bill of lading number, a house bill number, and various customs codes. These alphanumeric strings are often 20 to 30 characters long. Code 39 is commonly used for these labels because it can encode uppercase letters, digits, and a few special characters like dash, dot, and space. The labels are large A5 or A6 size and are attached to the side of the container or to the shrink-wrap of a pallet. The scanning environment is outdoors, with variable lighting from bright sunlight to overcast skies, and sometimes rain or dust.

The low density means that the barcode can be printed with a large X dimension of 0.5 mm (20 mils) or more, making it readable by handheld scanners from up to 1 meter away. In a busy freight yard, the operator does not want to climb onto the container to get close to the label; they want to stand on the ground and scan from a comfortable distance. Code 39's large bars provide a generous depth of field. Additionally, the self-checking property reduces the need for a human-readable interpretation line, although most freight labels still include the alphanumeric data below the barcode for manual entry. The combination of long-range readability and manual backup makes Code 39 ideal for the chaotic freight yard.

One freight company reported that they experimented with Code 128 to reduce label size and save paper, but they found that the smaller labels were harder to spot from a distance; operators had to walk closer to read the tiny barcode, which slowed down the loading process. They also found that Code 128's narrower bars were more susceptible to being obscured by the rough texture of the corrugated cardboard on which the label was affixed. The cardboard fibers created a mottled background that interfered with the scanner's thresholding. Code 39's wider bars averaged out the background noise better. So they reverted to Code 39 and simply increased the label size to accommodate the longer data strings. The low density was accepted as a necessary trade-off for operational speed and reliability.

Industry 11: Agriculture and Food Processing

In the food industry, traceability is mandated by regulations like the U.S. Food Safety Modernization Act (FSMA). Each batch of produce, meat, or processed food must have a lot number that can be traced back to the farm, the processing plant, and the shipping date. These lot numbers are often alphanumeric, e.g., 'LOT-2026-08-13-A.' Code 39 is used on corrugated boxes, plastic crates, and even on individual shrink-wrapped packages of meat. The labels are printed in harsh environments: meat processing plants are cold and wet, produce packing sheds are dusty, and warehouses may be unheated.

The low density is a boon in these environments because the labels are often printed on porous materials like uncoated cardboard, which causes ink to spread. The wide-to-narrow ratio of Code 39 can be set to 2.5:1 or 3:1 to accommodate the ink spread, ensuring that the wide bars remain distinctly wider than the narrow bars. If a denser code were used, the ink spread could cause narrow bars to become as wide as wide bars, rendering the code unreadable. The discrete character structure also means that if a cardboard flap covers part of the barcode, the scanner can still decode the exposed characters, which is useful when boxes are stacked haphazardly.

A specific case: A large tomato packing cooperative in California uses Code 39 on every 25-pound box of tomatoes. The barcode encodes the field number, harvest date, and packer code about 18 characters. The boxes are transported in open trailers under the California sun, and the labels fade due to UV exposure. Code 39's wide bars provide enough contrast margin that even after a week of sun, the barcode can still be scanned at the receiving dock. The cooperative tried using Code 128 a few years ago, but they experienced a 15% no-read rate at the receiving dock due to label fading, whereas Code 39 had a no-read rate of only 2%. The difference was attributed to the larger bar widths that retained more thermal contrast after fading. So they switched back to Code 39, and they now print the labels with a UV-resistant thermal ribbon to further improve durability. The low density is not seen as a waste; it is seen as insurance against the elements.

Industry 12: Pharmaceutical Manufacturing and Serialization

Pharmaceutical companies are under immense pressure to serialize every saleable unit with a unique identifier to combat counterfeiting. Many countries mandate 2D Data Matrix codes on primary packaging (e.g., blister packs and vials), but for secondary packaging cartons and shipping cases Code 39 is still widely used for internal tracking. The serial number is often a 20-character alphanumeric string that includes the product code, lot number, and expiration date. On a carton of antibiotics, the barcode may be printed directly on the cardboard by a high-speed inkjet printer. The inkjet dots are relatively coarse, and Code 39's low density ensures that each bar consists of multiple dots, providing a solid, reliable signal.

In pharmaceutical warehouses, the temperature and humidity are tightly controlled, but the labels are handled by workers wearing gloves, which can smudge the ink. Code 39's large element sizes tolerate smudging better than fine-bar codes. Additionally, the self-checking property means that the scanner will reject a smudged character and the warehouse system will prompt a manual entry, rather than accepting a wrong serial number. This is crucial because a mis-shipped pharmaceutical product could lead to a recall or a regulatory fine. The industry has validated Code 39 extensively, and many of the warehouse management systems (WMS) have built-in Code 39 decoding libraries that have been tested over millions of scans. Changing to a denser code would require re-validating the entire supply chain, which is a multi-year project. So Code 39 persists, and its low density is simply compensated for by using larger label areas on the cartons.

One interesting sub-application is the serialization of clinical trial supplies. These are drug samples that are shipped to test sites around the world. Each sample kit has a Code 39 label that encodes the protocol number, site number, and kit sequence. The labels must be readable after being shipped in dry ice or refrigerated packs. The low density ensures that the barcode remains readable even if condensation forms on the label surface, because the wide bars create a strong contrast that the scanner's algorithm can detect through the water droplets. Clinical supply managers often choose Code 39 over newer symbologies precisely because of its proven robustness in extreme shipping conditions.

Industry 13: Postal and Courier Services

Postal services have their own proprietary barcodes (like USPS's Intelligent Mail barcode), but for internal sorting and tracking, many courier services use Code 39 on shipping labels, return receipts, and delivery manifests. The data encoded is typically a tracking number, which is alphanumeric in many countries. For example, a Royal Mail tracked item might have a code like 'RT123456789GB.' Code 39 encodes that directly. The labels are printed at high speed on continuous fanfold paper, and they are applied to packages by automated applicators.

The low density is actually helpful in postal sorting because the barcode must be readable by high-speed linear array scanners that scan the package as it flies down a conveyor at 3 meters per second. The scanners have a fixed focal length and a limited resolution. Code 39's larger bars provide more pixel samples per bar, which improves the signal-to-noise ratio in the captured image. This allows the decoder to work reliably even with inexpensive cameras. Many postal sorting centers have invested in 2D imagers for reading multiple codes, but they still retain Code 39 for the primary tracking number because it is the most reliable under high-speed conditions. The postal environment also includes packages of varying shapes and sizes, some with shiny surfaces or transparent wrappers. Code 39's wide bars are less affected by specular reflection from shiny tape, because the scanner's laser spot is large enough to average out the glints. A denser code with finer bars would have more individual bar reflections, making the signal noisier.

One specific courier company in Asia uses Code 39 for all domestic express packages. Their tracking numbers are 15 alphanumeric characters. The barcode is printed at 200 dpi with an X dimension of 0.3 mm, resulting in a label that is about 70 mm long. That easily fits on the standard 100x150 mm shipping label. The company has reported a first-read rate of 99.7% across their entire network, which they consider excellent. They have no plans to switch to a denser code because the current system is fast, reliable, and cheap to operate. The low density is simply part of the recipe for their operational excellence.

Industry 14: Security and Access Control

Access control cards, such as those used in corporate offices and parking garages, often have a Code 39 barcode printed on them alongside a magnetic stripe or an RFID chip. The barcode is a backup or secondary identifier. The encoded data is usually a badge number and a facility code, e.g., 'EMP-4287.' The card is small (about 54x86 mm), but the barcode can be printed vertically along one edge, where it takes up a narrow strip of about 5 mm width and 40 mm length. Code 39's low density means that the barcode may need to be printed with a small X dimension of 0.1 mm (4 mils) to fit in that space. At that size, the narrow bars are only 0.1 mm wide, which is approaching the limit of common 300 dpi printers (a dot is 0.085 mm). This is a challenging application where density actually matters, and some access card manufacturers have switched to Code 128 or PDF417 for their smaller cards.

However, many legacy access control systems were built with Code 39 readers, and upgrading the readers across thousands of doors is expensive. So they continue to use Code 39, but they mitigate the low density by using high-resolution 600 dpi printers and specialized thermal transfer ribbons that produce very sharp edges. They also accept a slightly longer card design for example, a wider card by 5 mm to accommodate the longer barcode. In this industry, the low density is a constraint, but it is manageable with careful engineering. The benefit is that Code 39 is an open standard with no licensing fees, and the readers are widely available and inexpensive. So even in a space-constrained application, the low density is tolerated because of the ecosystem that has grown around it.

Industry 15: Office Automation and Document Tracking

Finally, let us consider a mundane but ubiquitous application: document tracking in offices and law firms. Many organizations place a Code 39 barcode on every file folder, box of archived documents, and even on individual pages as part of a document management system. The encoded data is a file reference number, such as 'CASE-2026-0123.' The labels are printed on adhesive sheets using standard office laser printers. The low density is not an issue because the folders are large and the labels can be as big as needed. The real advantage is that Code 39 can be printed with any font that generates the barcode pattern, and many office software packages include Code 39 fonts. This makes it incredibly easy for administrative staff to generate barcodes without special software. They simply type the data, apply the Code 39 font, and print.

The self-checking property also reduces errors in manual data entry, because if a scanner misreads a character, the invalid wide count will trigger a rejection. In an office environment, documents are often scanned with desktop document scanners that have a built-in barcode reading function. These scanners can read Code 39 from a page that is slightly skew or has a folded corner, because the large bars provide plenty of contrast. Offices that have tried using Code 128 found that their older scanners struggled with the finer bars, and they had to upgrade their hardware. Many chose to stick with Code 39 to avoid capital expenditure. The low density is accepted as a small price for simplicity and backward compatibility.

Conclusion: The Enduring Value of Inefficiency

We have now toured fifteen distinct industries, each with its own set of physical, regulatory, and economic constraints. In every case, Code 39's low data density was not a fatal flaw but a deliberate choice, or at least a manageable compromise. The core reason nine elements per character with exactly three wide is immutable. Yet, that immutability is exactly what gives Code 39 its self-checking nature, its tolerance of poor print quality, its discrete character independence, and its human-recognizable patterns. These attributes are not just nice-to-have; they are essential in environments where labels are subjected to grease, heat, cold, abrasion, moisture, UV light, ink spread, low-resolution printing, curved surfaces, long-distance scanning, and legacy equipment.

To put it in perspective: If data density were the only measure of a barcode's worth, Code 39 would have been extinct by 1990. But in the real world, a barcode is not a theoretical construct; it is a physical object that must survive a gauntlet of abuses. The low density means each bar is physically larger, which provides a larger margin for wear, a larger signal duration for moving scans, a larger tolerance for dot gain, and a larger visual footprint for human operators. It also means that a single damaged character does not corrupt the entire symbol, because the discrete encoding isolates each character. These are not secondary benefits; they are primary drivers of adoption in many industrial and logistical settings.

Moreover, the economic inertia of Code 39 cannot be overstated. Billions of labels have been printed, millions of scanners have been deployed, and thousands of software systems have been integrated with Code 39 as the default. The cost of switching to a denser symbology is not just the cost of new printers and scanners; it is the cost of retraining staff, re-validating quality systems, updating databases, and re-engineering supply chain interfaces. For many organizations, that cost far outweighs the savings in label paper or the minor inconvenience of a longer label. In fact, label paper is one of the cheapest components in a supply chain; the labor cost of scanning and the cost of misreads are much more significant. By choosing Code 39, organizations invest in reliability and simplicity, accepting the low density as a one-time trade-off.

It is also worth noting that technology has mitigated the density issue in recent years. High-resolution 300, 600, and even 1200 dpi printers can print Code 39 with very small X dimensions, achieving densities that were impossible in the 1980s. A modern Code 39 label at 5 mils X dimension can encode 12 to 15 characters per inch, which is quite respectable. And 2D imagers can read barcodes at oblique angles and from greater distances, further compensating for the physical length. So the low density is less of a practical constraint today than it was forty years ago. Yet, the fundamental structural limitation remains, and it will always make Code 39 less space-efficient than Code 128 or any variable-length symbology.

In summary, the core reason for Code 39's low density is its 3-of-9 element structure, which forces each character to occupy a fixed, relatively large number of bar and space positions, with three wide elements that further increase the physical length due to the wide-to-narrow ratio. Compared to Code 128, which uses 11 elements for two characters (a 5.5 elements-per-character average) and does not force a fixed number of wide elements, Code 39 is roughly half as dense. This is a mathematical fact that no amount of clever printing can fully overcome. However, the same structural rule that reduces density also provides self-checking, discrete encoding, high tolerance to print defects, and ease of human interpretation. These properties are the bedrock of Code 39's enduring success in manufacturing, aerospace, defense, healthcare, libraries, government, retail, warehousing, electronics, logistics, agriculture, pharmaceuticals, postal services, security, and office automation.

As we close this chapter, remember that in engineering, there is no such thing as a free lunch. Every design choice has trade-offs. Code 39's designers chose to prioritize robustness and simplicity over density, and that choice has been vindicated by decades of reliable service in the harshest conditions. The low density is not a weakness; it is a signature of a symbology that was built to last. It is the price of a barcode that you can trust when the ink is fading, the label is torn, the scanner is old, and the package is hurtling down a conveyor at high speed. And for countless industries, that trust is worth every extra millimeter of paper.

Final Summary

- Core structural fact: Code 39 uses 9 elements (5 bars, 4 spaces) per character, with exactly 3 wide elements. This fixed 3-of-9 pattern is the direct cause of low data density.

- Physical length calculation: With a typical wide-to-narrow ratio of 2.5, each character averages 14.5 X-units including the inter-character gap, whereas Code 128 averages about 6-7 X-units per character and encodes two characters per 11 elements, making Code 39 roughly 50% less dense.

- Self-checking advantage: The fixed number of wide elements provides built-in error detection without a mandatory checksum, reducing substitution errors.

- Discrete vs. continuous: Code 39's inter-character gaps make it tolerant of localized damage; a scratch or tear affects only a few characters, not the whole symbol.

- Tolerance to poor print quality: The generous wide-to-narrow ratio (often 2.5:1 to 3:1) accommodates ink spread, dot gain, thermal fading, and low-contrast surfaces.

- Long-range and curved-surface readability: Larger bars provide more signal duration and better depth of field, ideal for scanning at distance or on cylindrical objects.

- Human readability: The visual patterns of wide bars are distinctive, allowing trained workers to identify codes by sight.

- Legacy ecosystem: Billions of existing labels, millions of scanners, and decades of validated software make Code 39 a de facto standard that is expensive to replace.

- Industry examples: We examined automotive, aerospace, defense, healthcare, libraries, government, retail, warehousing, electronics, logistics, agriculture, pharmaceuticals, postal, security, and office automation all of which accept low density in exchange for robustness, simplicity, and interoperability.

- Modern mitigation: High-resolution printers and 2D imagers have reduced the practical impact of low density, but the underlying structural inefficiency remains a defining characteristic.

- Economic perspective: The cost of label space is negligible compared to the cost of scanning errors, system re-validation, and staff retraining; thus, low density is a rational trade-off.

- Overall verdict: Code 39's low density is not a design flaw but a deliberate compromise that has served the industry remarkably well for over 50 years, and it will continue to do so for the foreseeable future, especially in applications where reliability trumps real estate.

 

EasierSoft Barcode Label Design & Bulk Printing Software

---- Use Excel Data to Batch Print Barcodes on Label Sheets or Roll Labels  

---- How to use this barcode software

Download:  Free Barcode Software + Barcode Label Designer

Download Free Barcode Software at Softonic

     Download at CNET

Once you obtain a GS1/UPC/EAN barcode, or other barcode type and QR code, you can use our free software to batch print barcode labels onto Roll label paper using a professional label printer, or to batch print barcodes onto Avery 5160 label sheets using a regular laser or inkjet printer. Our software has free and paid versions.

The free version fully meets your needs for batch printing GS1/UPC/EAN barcodes. The paid version can import data from Excel and databases to batch print barcode labels with different values.

How to Start

Input Data

Import Excel Data

Print Barcode

Barcode Format

Label Designer

All Screen Shot

Export Barcode Image

Save Template

Output Word Excel

How to Use & FAQ:

Input data (Std)

Export barcodes to Excel

Export barcodes to Word

Add ascii key to barcode

Auto calculate barcode size (Std)

Make barcode by command line

Export barcode image files

Barcode text font setting

Generate ISBN barcode

Predefined label templates

Printing setup

Save settings

Serial number generator

The supported barcode types

Load Excel data (pro)

Manually copy data from Excel files

Filter some data for printing

Edit imported barcode data

Input data (Pro)

Label Designer

Edit data in Label designer

Label Designer - Add new label

Label Designer - Printing

Set the barcode label format to be printed

Other Barcode Label Format Settings

Barcode types supported by this program

Barcode Label Font Settings

Configuring the Barcode Print Rotation

Text Alignment for Barcode Labels

Automatically Adjusting Barcode Width

Text Beneath the Barcode

Configuring Barcode Size

Auto Calculate the Barcode Size

Export Barcode images

Export Barcode Image Format

File Names for Exported Barcode

Resolution of Exported Barcode Images

Fixed Folder for Exporting Barcode

Default Barcode Image Export Format

Print bulk barcodes quickly

Print barcodes to Avery 5160 label

How to bulk Barcode Printing

Sample - Avery 5162 (2x7) Label Sheet

Example: Print barcodes to 5*3cm roll

Example: Print barcodes to 5161 label

Example: Print barcodes to 5162 label

Example: Print barcodes to 5163 label

Example: Print barcodes to 5164 label

Example: Print portrait orientation 5164

Example: Print barcodes to 5167 label

Highlights

Excel integration: Import data directly from Excel to generate and print barcodes in bulk.

Label designer: Create complex labels with multiple barcodes, text, logos, and shapes.

Batch printing: Print thousands of barcodes at once using standard inkjet/laser printers or professional barcode printers.


Flexible editions:

Standard Edition: Simple batch printing with Excel data.

Professional Edition: Adds command-line automation for workflow integration.

Label Designer Edition: Advanced design features for complex labels.


Why Choose Our Barcode Solutions?

Cost-effective: Free online generator and permanent free desktop version available.

Easy to use: No technical expertise required—just input data and print.

Versatile: Supports nearly all 1D and 2D barcode types, including QR codes.

Trusted: Recommended by CNET and widely downloaded by users worldwide.


Suitable Use Cases

Small businesses and startups needing quick barcode labels for products.

Retailers and online sellers managing inventory with batch barcode printing.

Manufacturers requiring sequential or custom barcode labels for packaging.

Educational and testing environments where barcodes are used for tracking.

 

 

CONTACT

cs@easiersoft.com

If you have any question, please feel free to email us.

 

https://free-barcode.com

 

<<< Back to Directory <<<     Barcode Generator     Barcode Freeware     Privacy Policy