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.
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 |
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:
show
and stringwidth
are redefined when the auto font is
included. This will only work if these operators are not redefined
elsewhere in the file. In particular, one can not use two auto fonts
in the same document!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:
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.