Chapter 3. Choosing the Right Font

The fonts included in this package produce X dimension at 10 mils (1/1000th inch, or 0.0254 cm) and heights at 1/8"(XXS), 1/4"(XS), 3/8"(S), 1/2"(M), 5/8"(T), 3/4"(XT) and 1"(XXT) respectively when printed at 12 points. To have the human readable printed beneath the barcode, use the human readable version which has a trailing capital A in the typeface name. Thus, MRV Code39MA prints code39 barcodes at 1/2" hight and 10mils as X dimension, with human readable text beneath the barcode.

To simplify the size calculation, X dimension is independent of the typeface. All fonts produce barcodes with identical X dimension under the same font size. To determine the typeface and font size, first calculate the font size from X-dimension requirement, then select a typeface which closest matches the required height.

The scalable fonts in this package have different characteristics from the ones in Morovia Code39 Fontware 4.0 and earlier. Therefore you should not use this manual as a reference for Code39 Fontware.

3.1. X-dimension

Although font characters scale linearly and print any sizes required, not all sizes will produce best quality barcodes. The reason is that printers can only address individual pixels instead of a length specified in inches or centimeters. For example, a printer dot measures 3.33 mils on a 300-dpi printer. Certainly you can not print a size smaller than 3.33 mils. And you can not consistently print a length of 5 mils, because this printer either prints 3.33 mils, or 6.66 mils in this case. We call a font size optimal when the dots produced always remain constant. This is vital to small size barcodes where the barcode quality largely depends on the constant width of elements. On the other side, this is usually not a problem when X dimension is big enough especially at normal sizes (such as 15 and 20 mils).

The optimal sizes for this version Code39 fonts are integral times of 4 on a 300-dpi printer and integral times of 2 on a 600-dpi printer. To quickly locate the font size based on X-dimension requirement, use the table below:

Table 3.1. X Dimensions List

Font SizeX DimensionFont SizeX Dimension
6 pt5 mils0.013 cm28 pt23 mils0.059 cm
8 pt7 mils0.017 cm30 pt25 mils0.063 cm
10 pt8 mils0.021 cm32 pt26 mils0.065 cm
12 pt10 mils0.025 cm34 pt28 mils0.071 cm
14 pt12 mils0.029 cm36 pt30 mils0.076 cm
16 pt13 mils0.034 cm38 pt31 mils0.080 cm
18 pt15 mils0.038 cm40 pt33 mils0.084 cm
20 pt17 mils0.042 cm42 pt35 mils0.088 cm
22 pt18 mils0.046 cm44 pt36 mils0.092 cm
24 pt20 mils0.050 cm46 pt38 mils0.097 cm
26 pt22 mils0.055 cm48 pt40 mils0.101 cm

For example, suppose that X-dimension required is 15 mils, from Table 3.1, “X Dimensions List”, the optimal size is 18 points on 600-dpi printers, or 20 points. [2]

Many barcode standards require that a code 3 of 9 barcode to have a X-dimension at 7.5 mils or above on open systems. To meet this requirement, the font size should be at least 8 points.

Sometimes a requirement does not specify X-dimension. Instead, it gives the requirement of overall length or character per inch (cpi). Fortunately it is easy to derive X dimension from barcode length. A Code39 character always has 3 wide elements and 7 narrow elements [3]. When N (the ratio of the nominal wide element width to the nominal narrow-element width) is 3.0, the width of a code39 character is 16 times X dimension.

For example, assume that barcode density specified is is 8 characters per inch (including extra start and stop characters). It translates into 1/8" per character. Divide the value by 16 we get X dimension 0.008 inch. From the X-dimension table, assume that the printer has a resolution of 600 dpi, the font size to be used should be 10 points.

3.2. Bar Height

After font size is determined from the X dimension requirement, now it is time to find which font meets the bar height requirement. In this pack seven different bar heights at any given font size. At 12 points, the barcodes produced will have the following heights:

Table 3.2. Bar Heights of Code39 Fonts (at 12 points)

Height OptionBar Height (inch)Bar Height (cm)
XXS0.125 inch0.318 cm
XS0.250 inch0.635 cm
S0.375 inch0.952 cm
M0.5 inch1.27 cm
T0.625 inch1.588 cm
XT0.750 inch1.90 cm
XXT1.0 inch2.54 cm

Assume that you need a font to produce barcodes with X dimension at 15 mils and bar height at 1 inch. From the X dimension table 18 points should be used as the font size. At 18 points, T fonts produce bar height of 0.625X18/12=0.94 inch, whereas XT fonts produce bar height 0.75*18/12=1.125inch. Both are closest matches to the requirement. If requirement says that the bar height must be at least 1 inch, then XT fonts should be selected.

3.3. Human Readable Text

The last factor of font selection is human readable text. The human readable text can be added using a text font. For convenience, we create fonts with human readable text built-in. It is easy to identify human-readable fonts - these fonts with names ending with a trailing letter A. Therefore, MRV Code39M produce barcodes only, whereas MRV Code39MA produces barcodes with human readable. Except this difference, the two fonts are identical.

3.4. Other Considerations

Fonts are easy to use and portable among systems. On the other side, font characters scale in both directions. That means it is impossible to get both sizes match the ones required. The bar height always scales up and down at the same time X-dimension scales up and down.

Code39 standard also allows customization of the ratio N. N is normally a value between 2.5 and 3.0. A lower value increases barcode density at the cost of readability. All code39 fonts included in this package have a fixed ratio of 3.0, which is required by most applications.

In consideration of the possible requirement to have the font customized for specific needs, Morovia offers custom font services at reasonable cost. For example, we can modify a font to have N=2.5, or have a font meet both bar height and X dimension requirements. Note that this service is offered only to customers who already purchased a license of the font, and the license term of the modified font follows the product to be replaced. If you have such needs, please contact us at .



[2] Note that 18 pt is not an optimal size for 300-dpi printer, although the barcode printed might pass scan testing.

[3] Some specifications say that a code39 character consists of 9 elements, among which 3 are wide. This is how the name "3 of 9" comes from. This statement is correct. However, it did not take the inter-character gap into count. According to the code39 standard, a blank element with equal to X-dimension is required between characters. To simplify the calculation, we count this element in the character.