The BarFonts package is a collection of PostScript Type 1 fonts for printing bar codes, available under the GNU General Public License. The package can be downloaded as a gzipped tar file, and as a zip file. The font characters consist of bars only; i.e. there is no human readable text along with the bars.

You can generate BarFonts bar codes using this form.

You can also generate BarFonts bar codes using the BarGen app for Android devices.

Type 1 fonts can be used directly under Windows 2000 and later – earlier versions of Windows require that ATM, Adobe Type Manager, is installed. There is a light version of ATM available for download from Adobe.

Printing some message text as a bar code does, for most bar codes, involve some modification of the text, such as addition of a checksum character and/or special start/stop/delimiter characters. For each font there is a Perl script (execute with the option -h to display its usage) and a Visual Basic script that can be used to convert a message into the correct form. Each font also comes in a non-standard variant, an "auto font", that is designed to automatically convert the message into the appropriate form. The auto fonts should be considered as experimental, and have several limitations, see below.

Available fonts

The following bar code fonts are included in BarFonts 1.0:

Font Implements
CodabarJK Codabar
Code128JK Code 128
Code39JK Code 39
Codei25JK Interleaved 2 of 5
EANJK UPC A, UPC E, EAN 13, EAN 8, supplementals

Auto fonts

The auto fonts can sometimes be used to print bar codes without having to calculate the checksum/start/stop characters in advance, this is taken care of by the auto font itself. Whether this will work or not depends on the application that uses the fonts. So your best chance to get these fonts to work is when you are making the PostScript generating application yourself. You should then be aware of that the two PostScript operators show and stringwidth are redefined when an auto font is included. If you use the fonts in an existing application, it is impossible to say in advance if it will work, you'll just have to try.

Whether you make the application yourself or not, you should consider the following:

Beware of "smart" quotes

Some word processors automatically replaces the ASCII characters 34 (double quote) and 39 (single quote) with language dependent quotation marks – "smart quotes". This may cause incorrect printing of bar codes with fonts containing those characters – currently the fonts for Code 128 and Interleaved 2 of 5. Note that the quote characters may appear in the printed text string, even though they are not in the original message to be printed: in Code 128 as a checksum character, and in Interleaved 2 of 5 since pairs of digits are represented by one character. To check whether there is a problem with smart quotes, you can print out a test message, and check if your bar code reader reads back the same message. For Code 128, use as test message any text containing both quote characters, and for Interleaved 2 of 5, the text "0207", without adding the checksum character.

In MS Word, smart quotes only seem be in effect when characters are typed in from the keyboard, not when pasting text. So, when copying the text from the supplied Visual Basic scripts, and pasting it into Word, there should hopefully not be any problem. Anyway, this is how to disable smart quotes in MS Word 97:

  1. From the Tools menu, select AutoCorrect.
  2. Select the "AutoFormat as You Type" tab.
  3. Clear the box "Straight quotes with smart quotes".

Other bar codes

The fonts included in this package have been automatically generated using a Perl script, reading bar code specifications from simple text files. This makes it possible to quite easily generate other bar code fonts of the same type: one-dimensional, having bars of equal hight. If you want such a font, mail me (a pointer to) the bar code specification, and I'll see what I can do. Auto fonts, and scripts for calculating checksum characters etc, are not generated automatically, so there is less chance for you to get those adapted for a new bar code.

If you like it...

Jan Kärrman
Dept. of Information Technology
Uppsala University