Printing 100% compliant barcodes from any printer to any label or document
will ensure perfect readability. With good quality label printers with
built-in barcode support this is usually possible as long as you carefully
follow the manufacturer's quality control directions. But good thermal
printers can cost several thousand dollars and are only designed for label
printing. What about printing from general purpose printers, such as laser
printers? In this case the software used is critical to guarantee perfect
barcodes.
The guidelines below are based on the industry standard recommendations
of the Uniform Code Council for EAN/UPC symbols but the concepts apply
equally well to all barcode symbologies.
As a user it is important to understand these concepts in selecting the
best hardware and software for barcode printing.
Thermal Transfer Bar Code Label Printers
These are commonly used printers for barcode labeling. It is most important
with this type of printer to make sure that you follow the manufacturers
recommendations for setting up the printer and testing the bar codes.
Direct thermal and thermal transfer printers require specific settings
for best results depending on the combination of label and ribbon materials.
The manufacturer will supply the directions for the correct adjustment
for your printer type.
It is also very important to verify bar codes using an ANSI based verifier.
This should be done after any change in the label material or any change
in the printer or it's settings. It should also be done or a regular
basis to ensure quality is maintained and when printing a long run.
To maintain the quality of printed bar codes the manufacturers directions
for cleaning the print head and guide surfaces should be followed. It
will also be necessary to replace the thermal printhead eventually as
these wear out. When this happens the bar codes will no longer be readable
as one or more of the dot elements will not heat properly.
It is so important to verify printed symbols on a regular basis that some
thermal printers can be equipped with on-line verifiers.
With thermal printers the quality of the label design software you use
will not affect the quality of the printed bar codes.This is because
the
software is just sending a command to print a bar code - a command that
triggers the printers internal software to actually generate and
print the correct bar code.
General Purpose Printers
General purpose printers, especially laser printers, are excellent for
producing bar code labels on sheets of pre-cut labels (such as "Avery"
labels) or on continuous feed labels. Obviously, for anyone needing extremely
high quantities of bar codes on a daily basis thermal transfer printers
with their high speed would be better, but for many users general purpose
printers, especially laser printers, are preferable.
Laser printers are also perfect for creating bar codes on documents, such
as medical and legal records, coded "mail-merge" letters, etc.
Imagesetters, such as Linotronic printers, are used to create high quality,
2540+ dpi, film positives and negatives for commercial printing.
With general purpose printers, including laser, desktop, ink jet, ion
deposition, dot matrix and imagesetter, the software used is critical
to ensuring readable symbols.
"There is a wide variety of software packages for creating symbols
using general purpose printers. Unfortunately, many of these packages
are capable of producing symbols with totally unacceptable quality."
UCC Guidelines for Producing Quality Symbols, April 1998
The software used should be able to satisfy the following requirements:
Dots Per Bar Width
When specifying the narrow bar (module) width the user should be able
to specify an integer multiple of the printer dot width. This is best
explained with an example. For a 600 dpi printer the actual dot width
is 1/609.6* = 0.00164". The module width should be specified as
an integer multiple of printer dots, i.e.
8 dots per module gives a width of 13.12 Mils and a Magnification Factor
of 100.95%
7 dots per module gives a width of 11.48 Mils and a Magnification Factor
of 88.33%.
(*A 600 dpi printer with an actual 609.6 dpi)

Module (bar) width defined as 8 printer dots or 13.12 Mils or a Magnification
Factor of 100.95%
Module (bar) width defined as 13 Mils or a Magnification Factor of 100%.
This is not an Integer number of printer dots. Rounding errors could occur
when printing.
The easiest way to achieve the correct module width for your printer
is to have software that:
i. Allows you to specify the target printer resolution or finds
the resolution for you for the printer you have selected.
ii. Then allows you to specify the module width in "printer
dots" (it would already know the "dots per inch"). You
would select the number of printer dots that most closely matches the
Magnification Factor, or module width in Mils, that you desire. If you
wanted 100% magnification an "8 printer dot" width for a 600
dpi printer would be the closest.
Bar Width Reduction
The software you select also needs to have an option for "Bar Width
Reduction." This is important when printing to any printer that has
"dot spread". This includes ink jet printers and "wet ink"
printers (but not laser printers). For these printers one dot of bar width
reduction is recommended per bar width. For instance for a 300 dpi ink
jet printer with a module width of 13.12 Mils (4 printer dots per module
width) Bar Width Reduction of one dot would be 3.28 Mils or 25%.
Bar Width Reduction is also required when bar codes are going to be printed
on a commercial (wet ink) press. In this case the artwork containing the
bar code is usually output on film from an Imagesetter. Imagesetters have
resolutions of 2400+ dpi so the required bar width reduction can be specified
exactly. The actual amount of reduction required is determined by the
paper and ink used and this should be specified by the printer. If printing
to a smooth hard surface, such as a glass bottle, Bar Width Gain may be
required. Again, you should consult your commercial printer for his recommendations
before generating the bar codes.
Bar Code Graphic Type
There are 3 main types of bar code software products:
1.Bar Code Fonts
2.Bit-map (Raster) Bar Code Generators
3.Vector Bar Code Generators
Each is discussed below:
1 Bar Code Fonts
"Bar code fonts have been known to create EAN/UPC symbols
with serious design defects. The problems may be caused by the design
of the font, an operator input, or a combination of both."
UCC Guidelines for Providers of EAN/UPC Symbol Design
Software, July 1997.
"Extreme caution should be used when producing EAN/UPC symbols
with bar code fonts."
The Uniform Code
Council does not recommend the use of fonts. As problems it cites
in particular the ability to manipulate the size of individual characters
(distortion), spacing between the characters (kerning) and the possibility
of font or resolution substitution at the output stage. However there
are many other problems with bar code fonts. The user cannot specify
the module (bar) width exactly in printer dots. Fonts do not support
Bar Width Reduction. Nor do they support many of the features specific
to bar code symbols such as Bearer Bars, Quiet Zones, independent symbol
height and module (bar) width specification, symbol rotation and support
for binary data (including ACSII nulls in Code 128, Code 39, Code 93
and PDF 417). In addition, most fonts do not automatically calculate
and add check digits and other security features to bar codes.
2 Bitmap Bar Code Generators
A bitmap image is device dependent. This means a bitmap of a one
inch square to be printed at 300 dpi would be 300 pixels across by
300
pixels down. If a bar code designed to print one inch square on a 300
dpi printer were printed instead on a 600 dpi printer the resulting
bar code would be ½ inch x ½ inch. This is because there would only
be 300x300 pixels in the image instead of 600x600.
The other problem with bitmap images is their size. If you are printing
to a 200 dpi printer a one inch square would contain 200 x 200 =40,000
bits of data. This is bad enough but to a higher resolution printer,
such as a common 600 dpi printer it would be 360,000 bits of data
(and
6.5 million bits of data for a 2540 dpi Imagesetter!!). These huge
files not only use large amounts of computer memory they also print
extremely
slowly.
3 Vector Bar Code Generators
Vector graphics are perfect for defining bar code images. A vector
image is a set of drawing commands that precisely defines the edges
of each bar and specifies how to fill in the area created within the
defined edges.
Vector images are completely device independent as they are a set of
precise commands instead of a collection of dots. A 1" x 1"
box will print 1" by 1" on a 100, 600 or 2540 dpi printer!
When a vector image is sent to a general printer the printers
software converts it to a raster image so that it can print it. The
Raster Image Processor in the Printer converts the precise path commands
in the vector graphic into a series of pixels. Hence the exact measurements
of the image are influenced by the resolution of the printer. A higher
resolution printer will be able to more precisely match the exact measurements
of the vector graphic. A lower resolution printer will need to round
the dimensions to the nearest integer number of printer dots. This is
why it is so important, especially in printers of 600 dpi or less, to
specify the module (bar) width in integers of printer dots (see part
1 above).
Vector bar code graphics are also much smaller than other bar code graphics
so they print many, many times faster. For instance, a typical 1"
high UPC code at 100% magnification would create a 149 KB bitmap for
a 600 dpi printer. A Windows Metafile (WMF) vector graphic of this bar
code would be 2 KB and an Encapsulated Postscript (EPS) vector graphic
with a TIFF preview would be 48 KB and 29 KB without the TIFF preview.
Windows Metafiles (WMF) are the best graphic format for bar codes in
Windows and EPS in the Mac (Macs do not support WMF graphics).
Once the bar code is created by any bar code software it should not
be resized, scaled or stretched. If the bar code is to be transferred
to a second party, information, such as the minimum printer resolution
for that bar width, should be communicated.
Bar Code Verification
As with Thermal Transfer printers, it is important to test the output
from General Purpose printers using a bar code verifier. The UCC recommends
using the test symbols:
0 12345 01234 1
6 78912 56789 0
If they fall below a grade B check that you have specified a Magnification
Factor (or module width) that corresponds to an integer number of printer
dots per module (bar) width. Bar Width Reduction may also be required
as discussed above.
If the user does not have a bar code verifier he can submit the bar codes
to a qualified testing organization. If nothing else, at least they should
be tested with a bar code reader.
Further Information
For the complete, in-depth, guidelines please refer to the following
Uniform Code Council documents
- UCC Guidelines for Producing Quality Symbols, April 1998
- Guidelines for providers of EAN/UPC Symbol Design Software, July 1997
- UCC Technical Bulletin #1, April 1997
You can download a FREE demo for TALtechs bar code generating
software,
B-Coder Pro and the
ActiveX control. Use
this to create bar codes in any size and any graphic format. Take the
recommendations above to create bar codes as WMF Vector graphics and
define the module (bar) width in "Printer Dots". B-Coder Pro
automates bar code production on labels and documents from MS Word,
Access, PageMaker
and other Windows application programs.
A FREE demo is also available for the TALtech
Bar Code DLLs. These programmer's tools allow developers to
add high resolution, completely device-independent, bar code printing
capability
to their custom applications, royalty free! As with B-Coder Pro, the
DLLs fully comply with industry recommendations to print 100% compliant
bar
codes.

B-Coder Pro
Bar Code DLLs
TALtech ActiveX Contol
Bar Code Basics
How a Bar Code Reader Works
Bar Code Symbology Descriptions
|