World Library  
Flag as Inappropriate
Email this Article

OCR-A font

Article Id: WHEBN0015037990
Reproduction Date:

Title: OCR-A font  
Author: World Heritage Encyclopedia
Language: English
Subject: Optical character recognition, OCR-B, Version 1.0 Editorial Team/Typography articles by quality log
Publisher: World Heritage Encyclopedia

OCR-A font

Category Sans-serif
Designer(s) American Type Founders
Commissioned by American National Standards Institute
Date released 1968[1]
Variations OCR-A Extended

OCR-A is a font that arose 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.[2] OCR-A uses simple, thick strokes to form recognizable characters.[3] The font is monospaced (fixed-width), 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 ANSI X3.17-1981. 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.[4]


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

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

To make the free version of the font more accessible to users of Microsoft Windows, John Sauter converted the [7] In 2007, Gürkan Sengün created a Debian package from this implementation.[8] In 2008. Luc Devroye corrected the vertical positioning in John Sauter's implementation, and fixed the name of lower case z.[9]

Independently, Matthew Skala[10] used mftrace[11] 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.[12]

In addition to these free implementations of OCR-A, there are also implementations sold by several vendors.


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 cheques around the world. Some lockbox companies still insist that the account number and amount owed on a bill return form be printed in OCR-A.[13] Also, because of its unusual look, it is sometimes used in advertising and display graphics.

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 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.
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
Left Curly Bracket Left Curly Bracket U+007B
Right Curly Bracket Right Curly Bracket U+007D
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 Dieresis Latin Capital Letter O with Dieresis U+00D6
Latin Capital Letter O with Stroke Latin Capital Letter O with Stroke U+00D8
Latin Capital Letter U with Dieresis Latin Capital Letter U with Dieresis U+00DC
OCR Hook OCR Hook U+2440
OCR Chair OCR Chair U+2441
OCR Fork OCR Fork U+2442

Remaining characters

Linotype[14] coded the remaining characters of OCR-A as follows:

Additional OCR-A Characters
Name Glyph Unicode Unicode Name
Long Vertical Mark Long Vertical Mark U+007C Vertical Line
Alternate Comma Alternate Comma U+E000 private use 0
Character Erase Character Erase U+E001 private use 1
Alternate Hyphen Alternate Hyphen U+E003 private use 3
Alternate Period Alternate Period U+E004 private use 4
Alternate Question Mark Alternate Question Mark U+E005 private use 5
Alternate Apostrophe Alternate Apostrophe U+E006 private use 6

Additional characters

The fonts that descend from the work of Tor Lillqvist and Richard B. Wales define four characters not in OCR-A to fill out the ASCII character set. These shapes use the same style as the OCR-A character shapes. They are:
Additional ASCII Characters
Name Glyph Unicode
Low Line Low Line U+005F
Grave Accent Grave Accent U+0060
Vertical Line Vertical Line U+007C
Tilde Tilde U+007E

Linotype also defines additional characters.[15]


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:[16]

  • 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:[17][18]

  • OCR Hook at U+0060
  • OCR Chair at U+007E
  • OCR Fork at U+005F
  • Long Vertical Mark at U+007C (agrees with Linotype)
  • Character Erase at U+0008


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

  • OCR Hook at U+007E (agrees with PrecisionID)
  • OCR Chair at U+00F0
  • OCR Fork at U+005F
  • Long Vertical Mark at U+007C (agrees with Linotype)


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

  • OCR Hook at U+007E (agrees with PrecisionID)
  • OCR Chair at U+00C1 (agrees with PrecisionID)
  • OCR Fork at U+00C2 (agrees with PrecisionID)
  • OCR Belt Buckle at U+00C3

Sellers of font standards

  • Hardcopy of ISO 1073-1:1976, distributed through ANSI, from
  • ISO 1073-1 is also available from Techstreet, who distributes standards for ANSI and ISO

See also


  1. ^ Background on the OCR-A font from Adobe
  2. ^ Motivation for OCR-A from Microscan
  3. ^ Background on OCR from Embedded Software Engineering
  4. ^ DIN 66008-1 Font A For Optical Character Recognition; Characters And Nominal Dimensions
  5. ^ Background on OCR-A from Adobe
  6. ^ The MetaFont sources for OCR-A from CTAN
  7. ^ John Sauter's 2004 OCR-A font from those MetaFont sources
  8. ^ The fonts-ocr-a Debian package, based on John Sauter's SourceForge project
  9. ^ Luc Devroye's account of his changes to John Sauter's implementation of OCR-A
  10. ^ Matthew Skala's home page
  11. ^ The mftrace Debian package
  12. ^ Matthew Skala's 2012 OCR-A font from the MetaFont sources
  13. ^ Description of a lockbox service, note “The bill contains an invoice and a statement with patient information contained in a scannable Optical Character Recognition (OCR) line. The OCR line is similar in appearance to that found on a credit card statement or telephone bill.”
  14. ^ Linotype's OCR-A font: choose Character Map then Private Use Area
  15. ^ Linotype's OCR-A font: choose Character Map then Show all
  16. ^ PrecisionID User Guide for the PrecisionID implementation of the OCR-A font
  17. ^ Information page for the Barcode implementation of the OCR-A font
  18. ^ Another source of information about the Barcode fonts
  19. ^ Information page for the Moravia implementation of the OCR-A font
  20. ^ Information page for the IDAutomation implementation of the OCR-A and OCR-B fonts

External links

  • Introductory article about OCR fonts
  • Link standard ANSI INCITS 17-1981 (R2002)
  • Background on ISO work involving OCR-A
  • Unicode code charts
  • IBM GCGID mapping
This article was sourced from Creative Commons Attribution-ShareAlike License; additional terms may apply. World Heritage Encyclopedia content is assembled from numerous content providers, Open Access Publishing, and in compliance with The Fair Access to Science and Technology Research Act (FASTR), Wikimedia Foundation, Inc., Public Library of Science, The Encyclopedia of Life, Open Book Publishers (OBP), PubMed, U.S. National Library of Medicine, National Center for Biotechnology Information, U.S. National Library of Medicine, National Institutes of Health (NIH), U.S. Department of Health & Human Services, and, which sources content from all federal, state, local, tribal, and territorial government publication portals (.gov, .mil, .edu). Funding for and content contributors is made possible from the U.S. Congress, E-Government Act of 2002.
Crowd sourced content that is contributed to World Heritage Encyclopedia is peer reviewed and edited by our editorial staff to ensure quality scholarly research articles.
By using this site, you agree to the Terms of Use and Privacy Policy. World Heritage Encyclopedia™ is a registered trademark of the World Public Library Association, a non-profit organization.

Copyright © World Library Foundation. All rights reserved. eBooks from World eBook Library are sponsored by the World Library Foundation,
a 501c(4) Member's Support Non-Profit Organization, and is NOT affiliated with any governmental agency or department.