The Full Wiki

ISO 1073-1: Wikis


Note: Many of our articles have direct quotes from sources you can cite, within the Wikipedia article! This article doesn't yet, but we're working on it! See more info or our list of citable articles.


(Redirected to OCR-A font article)

From Wikipedia, the free encyclopedia

OCR-A SP.svg
Category Sans-serif
Designer(s) American National Standards Institute
Date released 1968[1]

In the early days of computer optical character recognition, there was a need for a font that could be recognized by the computers of that day, and by humans.[2] 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.254 cm (0.10 inch) apart, and the reader required to accept any spacing between 0.2286 cm (0.09 inch) and 0.4572 cm (0.18 inch).



The 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.


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.[3]

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ün[6] 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 z.[8]

Independently, 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] Adobe Systems installs their OCR A Std (OpenType PostScript) version with every installation of Adobe Creative Suite (at least 3 and higher). It contains the character set outlined below as OCR-A Extended.

It is common for implementers 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 need.[12]


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. Some lockbox companies still insist that the account number and amount owed on a bill return form be printed in OCR-A. In addition, some people prefer its unique style.

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.


Space, digits, and unaccented letters

OCR-A digits
OCR-A unaccented capital letters
OCR-A unaccented small letters

All 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.

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.

Additional OCR-A code points based on ASCII and Unicode
Name Glyph Unicode
Exclamation Mark Exclamation Mark U+0021
Quotation Mark Quotation Mark U+0022
Number Sign Number Sign U+0023
Dollar Sign Dollar Sign U+0024
Percent Sign Percent Sign U+0025
Ampersand Ampersand U+0026
Apostrophe Apostrophe U+0027
Left Parenthesis Left Parenthesis U+0028
Right Parenthesis Right Parenthesis U+0029
Asterisk Asterisk U+002A
Plus Sign Plus Sign U+002B
Comma Comma U+002C
Hyphen-Minus Hyphen-Minus U+002D
Full Stop (Period) Full Stop (Period) U+002E
Solidus (Slash) Solidus (Slash) U+002F
Colon Colon U+003A
Semicolon Semicolon U+003B
Less-Than Sign Less-Than Sign U+003C
Equals Sign Equals Sign U+003D
Greater-Than Sign Greater-Than Sign U+003E
Question Mark Question Mark U+003F
Commercial At Commercial At U+0040
Left Square Bracket Left Square Bracket U+005B
Reverse Solidus (Backslash) Reverse Solidus U+005C
Right Square Bracket Right Square Bracket U+005D
Circumflex Accent Circumflex Accent U+005E
Low Line Low Line U+005F
Grave Accent Grave Accent U+0060
Left Curly Bracket Left Curly Bracket U+007B
Vertical Line Vertical Line U+007C
Right Curly Bracket Right Curly Bracket U+007D
Tilde Tilde U+007E
Pound Sign (Sterling) Pound Sign U+00A3
Yen Sign Yen Sign U+00A5
Latin Capital Letter A with Dieresis Latin Capital Letter A with Dieresis U+00C4
Latin Capital Letter A with Ring Above Latin Capital Letter A with Ring Above U+00C5
Latin Capital Letter AE Latin Capital Letter AE U+00C6
Latin Capital Letter N with Tilde Latin Capital Letter N with Tilde U+00D1
Latin Capital Letter O with Stroke Latin Capital Letter O with Stroke U+00D8
Latin Small Letter O with Dieresis Latin Small Letter O with Dieresis U+00F6
Latin Small Letter U with Dieresis Latin Small Letter U with Dieresis U+00FC
OCR Hook OCR Hook U+2440
OCR Chair OCR Chair U+2441
OCR Fork OCR Fork U+2442

Remaining Characters

The remaining characters of OCR-A, with no obvious Unicode code points, were coded as follows:

Additional OCR-A Characters
Name Glyph Unicode Unicode Name
Character Erase Character Erase U+007F Delete
Long Vertical Mark Long Vertical Mark U+00A6 Broken Bar
Alternate Hyphen Alternate Hyphen U+00AD Soft Hyphen
Alternate Apostrophe Alternate Apostrophe U+00B4 Acute Accent
Alternate Period Alternate Period U+00B7 Middle Dot
Alternate Comma Alternate Comma U+00B8 Cedilla
Alternate Question Mark Alternate Question Mark U+00BF Inverted Question Mark


Some implementations do not use the above code point assignments for some characters.


The PrecisionID implementation of OCR-A has the following non-standard code points:[13]

  • OCR Hook at U+007E
  • OCR Chair at U+00C1
  • OCR Fork at U+00C2
  • Euro Sign at U+0080


The Barcodesoft implementation of OCR-A has the following non-standard code points:[14]

  • OCR Hook at U+0060
  • OCR Chair at U+007E
  • OCR Fork at U+005F
  • OCR Belt Buckle at U+00DD


The Moravia implementation of OCR-A has the following non-standard code points:[15]

  • OCR Hook at U+007E
  • OCR Chair at U+00F0
  • OCR Fork at U+005F
  • Vertical Line at U+007C


The IDAutomation implementation of OCR-A has the following non-standard code points:[16]

  • OCR Hook at U+007E
  • OCR Chair at U+00C1
  • OCR Fork at U+00C2
  • OCR Belt Buckle at U+00C3

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.

OCR-A Extended

OCR-A Extended is a version of the OCR-A font. The bar isn't broken, but the broken bar is copied and pasted to the unicode broken bar. All other characters have been copied and pasted to normal unicode characters. The font has a number of 251 glyphs, as 62 were composite glyphs. The font supports the languages, in addition to English:

  • French
  • German
  • Italian
  • Portuguese
  • Dutch
  • Spanish
  • Icelandic
  • Norwegian
  • Danish
  • Finnish
  • Swedish
  • Albanian
  • and many others


The font is panosed as:

Family Kind: 2 - Latin Text

Serif Style: 1 - No Fit

Weight: 5 - Book

Proportion: 9 - Monospaced (uses BatangChe or 바탕체)

Contrast: 2 - None

Stroke Variation: 1 - No Fit

Arm Style: 2 - Straight Arms/ Horizontal

Letterform: 1 - No Fit

Midline: 3 - Standard/ Pointed

X-height: 3 - Constant/ Standard

Sellers of font standards

See also


External links


Got something to say? Make a comment.
Your name
Your email address