In the early days of computer Optical Character Recognition, there was a need for a font that could be recognized by the slow computers of that day, and by humans2. The resulting compromise was the OCR-A font, which used simple, thick strokes to form recognizable characters. The font is monospaced, with the printer required to place glyphs 0.1 inch apart, and the reader required to accept any spacing between 0.9 and 0.18 inch.
StandardizationThe OCR-A font was standardized by the American National Standards Institute (ANSI) as X3.4-1977. X3.4 has since become the INCITS and the OCR-A standard is now called ISO 1073-1:1976. There is also a German standard for OCR-A called DIN 66008. All of these standards are copyrighted, and none have been placed on the World Wide Web with the permission of the copyright holders. ImplementationsIn 1968, American Type Founders produced OCR-A, one of the first optical character recognition typefaces to meet the criteria set by the U.S. Bureau of Standards. The design is simple so that it can be easily read by a machine, but it is more difficult for the human eye to read3. As metal type gave way to computer-based typesetting, Tor Lillqvist used MetaFont to describe the OCR-A font. That definition was subsequently improved by Richard B. Wales. Their work is available from CTAN 4. To make the free version of the font more accessible to users of Microsoft Windows, John Sauter converted the MetaFont definitions to TrueType using potrace and FontForge in 2004 5. In 2007, Gürkan Sengün6 created a Debian package from this implementation 7. In 2008. Luc Devroye corrected the vertical positioning in John Sauter's implementation, and fixed the name of lower case z8. Apparently unaware of John Sauter's work, Matthew Skala used mftrace 9 and autotrace to convert the Metafont definitions to TrueType format in 2006 10. In addition to these free implementations of OCR-A, there are also implementations sold by several vendors. 11 12 13 14 15 16 17 18 19. It is common for implementors of OCR-A to go beyond the standard and define additional glyphs in the same style, to fill unused code points or to meet a particular need20 UseAlthough Optical Character Recognition technology has advanced to the point where such simple fonts are no longer necessary, the OCR-A font has remained in use. Some lockbox companies still insist that the account number and amount owed on a blll return form be printed in OCR-A. In addition, some people like it because of its strange look. Code PointsA font is a set of character shapes, or glyphs. For a computer to use a font, each glyph must be assigned a code point in a character set. When OCR-A was being standardized the usual character coding was the American Standard Code for Information Interchange or ASCII. Not all of the glyphs of OCR-A fit into ASCII, and for five of the characters there were alternate glyphs, which might have suggested the need for a second font. However, for convenience and efficiency all of the glyphs were expected to be accessible in a single font using ASCII coding, with the additional characters placed at coding points that would otherwise have been unused. The modern descendant of ASCII is Unicode, also known as ISO 10646. Unicode contains ASCII and has special provisions for OCR characters, so some implementations of OCR-A have looked to Unicode for guidance on character code assignments. Space, Digits and Unaccented LettersAll TrueType implementations of OCR-A use U+0020 for space, U+0030 through U+0039 for the decimal digits, U+0041 through U+006A for the unaccented upper case letters, and U+0061 through U+007A for the unaccented lower case letters. Additional Characters with Obvious Unicode Code PointsIn addition to the digits and unaccented letters, many of the characters of OCR-A have obvious code points in ASCII. Of those that do not, most, including all of OCR-A's accented letters, have obvious code points in Unicode. Remaining CharactersThe remaining characters of OCR-A, with no obvious Unicode code points, were coded as follows: ExceptionsSome implementations do not use the above code point assignments for some characters. PrecisionIDThe PrecisionID implementation of OCR-A has the following non-standard code points21:
BarcodesoftThe Barcodesoft implementation of OCR-A has the following non-standard code points22:
MoraviaThe Moravia implementation of OCR-A has the following non-standard code points23:
IDAutomationThe IDAutomation implementation of OCR-A has the following non-standard code points24:
In addition, the IDAutomation implementation of OCR-A includes the Euro Sign character. The IDAutomation documentation does not specify the code point for the Euro Sign character. Since the code points for OCR Hook, OCR Chair and OCR Fork match those of PrecisionID, the IDAutomation OCR-A font may be a clone of the PrecisionID OCR-A font, in which case the Euro Sign would be coded as U+0080. The standard code point for Euro Sign is U+20AC. Sellers of OCR-A font standards
See also
Notes
External Links
| | |||||||||||||||||||||||||||||||||||||||||||||