OCR-A
OCR-A is a font issued in 1966 and first implemented in 1968. A special font was needed in the early days of computer optical character recognition, when there was a need for a font that could be recognized not only by the computers of that day, but also by humans. OCR-A uses simple, thick strokes to form recognizable characters.
The font is monospaced, with the printer required to place glyphs cm apart, and the reader required to accept any spacing between cm and cm.
Standardization
The OCR-A font was standardized by the American National Standards Instituteas ANSI X3.17-1981. X3.4 has since become the INCITS and the OCR-A standard is now called ISO 1073-1:1976.
Implementations
In 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 read.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.
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. In 2007, Gürkan Sengün created a Debian package from this implementation. In 2008. Luc Devroye corrected the vertical positioning in John Sauter's implementation, and fixed the name of lower case z.
Independently, Matthew Skala used mftrace to convert the Metafont definitions to TrueType format in 2006. In 2011 he released a new version created by rewriting the Metafont definitions to work with METATYPE1, generating outlines directly without an intermediate tracing step. On September 27, 2012, he updated his implementation to version 0.2.
In addition to these free implementations of OCR-A, there are also implementations sold by several vendors. As a joke, Tobias Frere-Jones in 1995 created Estupido-Espezial, a redesign with swashes and a long s. It was used in a "technology"-themed section of Rolling Stone.
Maxitype designed the OCR-X typeface—based on the OCR-A typeface with OpenType features, alien/technology-themed dingbats and available in six weights.
Japanese typeface foundry Visual Design Laboratory designed two typefaces based on the OCR-A typeface: one for Simplified Chinese characters named Jieyouti and one for Japanese characters named Yota G
, both available in five weights.
Use
Although 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. Its usage remains widespread in the encoding of checks around the world. Some lock box companies still insist that the account number and amount owed on a bill return form be printed in OCR-A. Also, because of its unusual look, it is sometimes used in advertising and display graphics.Notably, it is used for the subtitles in films and television series such as Blacklist and for the main titles in The Pretender. Additionally, OCR-A is used in the titles and subtitles for the films 13 Hours: The Secret Soldiers of Benghazi and Hoppers . It was also used for the logo, branding, and marketing material of the children's toy line Hexbug.
Code points
A 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.
Pre-Unicode standard representation
The ISO standard ISO 2033:1983, and the corresponding Japanese Industrial Standard JIS X 9010:1984, define character encodings for OCR-A, OCR-B and E-13B. For OCR-A, they define a modified 7-bit ASCII set including only uppercase letters, digits, a subset of the punctuation and symbols, and some additional symbols. Codes which are redefined relative to ASCII, as opposed to simply omitted, are listed below:| Character | Image | Location | In ASCII | Comments |
| £ | Image:OCR-A char Pound Sign.svg|12px|Pound Sign | 0x23 | # | Matches BS 4730, the United Kingdom variant of ISO 646. |
| Image:OCR-A char Right Curly Bracket.svg|12px|Right Curly Bracket | 0x29 | ) | Character name is still "RIGHT PARENTHESIS", despite showing a brace. Usual right brace ASCII code 0x7D is omitted. | |
| ⑀ | Image:OCR-A char OCR Hook.svg|12px|OCR Hook | 0x3C | < | |
| ⑁ | Image:OCR-A char OCR Chair.svg|12px|OCR Chair | 0x3E | > | |
| ¥ | Image:OCR-A char Yen Sign.svg|12px|Yen Sign | 0x5C | \ | Matches JIS X 0201. Included in JIS X 9010, but omitted by ISO 2033. |
| ⑂ | Image:OCR-A char OCR Fork.svg|12px|OCR Fork | 0x5D | ] |
Additionally, the long vertical mark is encoded at 0x7C, corresponding to the ASCII vertical bar.
Dedicated OCR-A characters in Unicode
The following characters have been defined for control purposes and are now in the "Optical Character Recognition" Unicode range 2440–245F:| Name | Image | Text | Unicode |
| OCR Hook | Image:OCR-A char OCR Hook.svg|12px|OCR Hook | ⑀ | U+2440 |
| OCR Chair | Image:OCR-A char OCR Chair.svg|12px|OCR Chair | ⑁ | U+2441 |
| OCR Fork | Image:OCR-A char OCR Fork.svg|12px|OCR Fork | ⑂ | U+2442 |
| OCR Inverted fork | ' | ⑃ | U+2443 |
| OCR Belt buckle | ' | ⑄ | U+2444 |
| OCR Bow tie | ⑅ | U+2445 |
Space, digits, and unaccented letters
All implementations of OCR-A use U+0020 for space,U+0030 through U+0039 for the decimal digits,
U+0041 through U+005A for the unaccented upper case letters, and
U+0061 through U+007A for the unaccented lower case letters.
Regular characters
In 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.
| Name | Glyph | Unicode |
| Exclamation Mark | Image:OCR-A char Exclamation Mark.svg|12px|Exclamation Mark | U+0021 |
| Quotation Mark | Image:OCR-A char Quotation Mark.svg|12px|Quotation Mark | U+0022 |
| Number Sign | Image:OCR-A char Number Sign.svg|12px|Number Sign | U+0023 |
| Dollar Sign | Image:OCR-A char Dollar Sign.svg|12px|Dollar Sign | U+0024 |
| Percent Sign | Image:OCR-A char Percent Sign.svg|12px|Percent Sign | U+0025 |
| Ampersand | Image:OCR-A char Ampersand.svg|12px|Ampersand | U+0026 |
| Apostrophe | Image:OCR-A char Apostrophe.svg|12px|Apostrophe | U+0027 |
| Left Parenthesis | Image:OCR-A char Left Parenthesis.svg|12px|Left Parenthesis | U+0028 |
| Right Parenthesis | Image:OCR-A char Right Parenthesis.svg|12px|Right Parenthesis | U+0029 |
| Asterisk | Image:OCR-A char Asterisk.svg|12px|Asterisk | U+002A |
| Plus Sign | Image:OCR-A char Plus Sign.svg|12px|Plus Sign | U+002B |
| Comma | Image:OCR-A char Comma.svg|12px|Comma | U+002C |
| Hyphen-Minus | Image:OCR-A char Hyphen-Minus.svg|12px|Hyphen-Minus | U+002D |
| Full Stop | Image:OCR-A char Full Stop.svg|12px|Full Stop | U+002E |
| Solidus | Image:OCR-A char Solidus.svg|12px|Solidus | U+002F |
| Colon | Image:OCR-A char Colon.svg|12px|Colon | U+003A |
| Semicolon | Image:OCR-A char Semicolon.svg|12px|Semicolon | U+003B |
| Less-Than Sign | Image:OCR-A char Less-Than Sign.svg|12px|Less-Than Sign | U+003C |
| Equals Sign | Image:OCR-A char Equals Sign.svg|12px|Equals Sign | U+003D |
| Greater-Than Sign | Image:OCR-A char Greater-Than Sign.svg|12px|Greater-Than Sign | U+003E |
| Question Mark | Image:OCR-A char Question Mark.svg|12px|Question Mark | U+003F |
| Commercial At | Image:OCR-A char Commercial At.svg|12px|Commercial At | U+0040 |
| Left Square Bracket | Image:OCR-A char Left Square Bracket.svg|12px|Left Square Bracket | U+005B |
| Reverse Solidus | Image:OCR-A char Reverse Solidus.svg|12px|Reverse Solidus | U+005C |
| Right Square Bracket | Image:OCR-A char Right Square Bracket.svg|12px|Right Square Bracket | U+005D |
| Circumflex Accent | Image:OCR-A char Circumflex Accent.svg|12px|Circumflex Accent | U+005E |
| Left Curly Bracket | Image:OCR-A char Left Curly Bracket.svg|12px|Left Curly Bracket | U+007B |
| Right Curly Bracket | Image:OCR-A char Right Curly Bracket.svg|12px|Right Curly Bracket | U+007D |
| Pound Sign | Image:OCR-A char Pound Sign.svg|12px|Pound Sign | U+00A3 |
| Yen Sign | Image:OCR-A char Yen Sign.svg|12px|Yen Sign | U+00A5 |
| Latin Capital Letter A with Dieresis | Image:OCR-A char A with Dieresis.svg|12px|Latin Capital Letter A with Dieresis | U+00C4 |
| Latin Capital Letter A with Ring Above | Image:OCR-A char A with Ring Above.svg|12px|Latin Capital Letter A with Ring Above | U+00C5 |
| Latin Capital Letter AE | Image:OCR-A char AE.svg|12px|Latin Capital Letter AE | U+00C6 |
| Latin Capital Letter N with Tilde | Image:OCR-A char N with Tilde.svg|12px|Latin Capital Letter N with Tilde | U+00D1 |
| Latin Capital Letter O with Dieresis | Image:OCR-A char o with Dieresis.svg|12px|Latin Capital Letter O with Dieresis | U+00D6 |
| Latin Capital Letter O with Stroke | Image:OCR-A char O with Stroke.svg|12px|Latin Capital Letter O with Stroke | U+00D8 |
| Latin Capital Letter U with Dieresis | Image:OCR-A char u with Dieresis.svg|12px|Latin Capital Letter U with Dieresis | U+00DC |