OCR-A

Typeface designed for early computer OCR From Wikipedia, the free encyclopedia

OCR-A

OCR-A is a font issued in 1966[1] and first implemented in 1968.[2][3] 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.[4] OCR-A uses simple, thick strokes to form recognizable characters.[5] 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).

Quick Facts Category, Commissioned by ...
OCR-A
Thumb
CategorySans-serif
Commissioned byAmerican National Standards Institute
FoundryAmerican Type Founders
Date released1966
VariationsOCR-A Extended
Thumb
Sample
Close

Standardization

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.

Implementations

Summarize
Perspective

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.[when?] 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 Metafont definitions to TrueType using potrace and FontForge in 2004.[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. 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.[13][14]

Maxitype designed the OCR-X typefacebased on the OCR-A typeface with OpenType features, alien/technology-themed dingbats and available in six weights (Thin, Light, Regular, Medium, Bold, Black).[15]

Japanese typeface foundry Visual Design Laboratory designed a typeface for Simplified Chinese characters named Jieyouti, based on the OCR-A typeface and available in five weights (Light, Regular, Medium, Semi Bold, Bold).[16]

Use

Thumb
OCR-A on a German bank check. The ⑂, ⑀ and ⑁ characters are used to delimit particular fields in the machine-readable line (shown here partially redacted).

Although optical character recognition technology has advanced to the point where such simple fonts are no longer necessary,[17] 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.[18] 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[how?] for the films Crimson Tide and 13 Hours: The Secret Soldiers of Benghazi. It was also used for the logo, branding, and marketing material of the children's toy line Hexbug.

The pioneering German electronic group Kraftwerk utilized OCR-A in the album artwork of their 1981 studio album Computer World.[19]

Code points

Summarize
Perspective

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 (originally JIS C 6229–1984), define character encodings for OCR-A, OCR-B and E-13B. For OCR-A, they define a modified 7-bit ASCII set (also known by its ISO-IR number ISO-IR-91) including only uppercase letters, digits, a subset of the punctuation and symbols, and some additional symbols.[20] Codes which are redefined relative to ASCII, as opposed to simply omitted, are listed below:

More information Character, Image ...
CharacterImageLocationIn ASCIIComments
£Pound Sign0x23#Matches BS 4730, the United Kingdom variant of ISO 646.[21]
{Left Curly Bracket0x28(Character name is still "LEFT PARENTHESIS", despite showing a brace. Usual left brace ASCII code 0x7B is omitted.[20]
}Right Curly Bracket0x29)Character name is still "RIGHT PARENTHESIS", despite showing a brace. Usual right brace ASCII code 0x7D is omitted.[20]
OCR Hook0x3C<
OCR Chair0x3E>
¥Yen Sign0x5C\Matches JIS X 0201. Included in JIS X 9010, but omitted by ISO 2033.[20]
OCR Fork0x5D]
Close

Additionally, the long vertical mark (Long Vertical Mark) is encoded at 0x7C, corresponding to the ASCII vertical bar (|).[20]

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:

More information Name, Image ...
Dedicated OCR-A code points based on ASCII and Unicode[22]
NameImage TextUnicode
OCR HookOCR Hook U+2440
OCR ChairOCR Chair U+2441
OCR ForkOCR Fork U+2442
OCR Inverted fork U+2443
OCR Belt buckle U+2444
OCR Bow tie U+2445
Close

Space, digits, and unaccented letters

Thumb
OCR-A digits
Thumb
OCR-A unaccented capital letters
Thumb
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.

More information Name, Glyph ...
Additional OCR-A code points based on ASCII and Unicode
NameGlyphUnicode
Exclamation MarkExclamation MarkU+0021
Quotation MarkQuotation MarkU+0022
Number SignNumber SignU+0023
Dollar SignDollar SignU+0024
Percent SignPercent SignU+0025
AmpersandAmpersandU+0026
ApostropheApostropheU+0027
Left ParenthesisLeft ParenthesisU+0028
Right ParenthesisRight ParenthesisU+0029
AsteriskAsteriskU+002A
Plus SignPlus SignU+002B
CommaCommaU+002C
Hyphen-MinusHyphen-MinusU+002D
Full Stop (Period)Full Stop (Period)U+002E
Solidus (Slash)Solidus (Slash)U+002F
ColonColonU+003A
SemicolonSemicolonU+003B
Less-Than SignLess-Than SignU+003C
Equals SignEquals SignU+003D
Greater-Than SignGreater-Than SignU+003E
Question MarkQuestion MarkU+003F
Commercial AtCommercial AtU+0040
Left Square BracketLeft Square BracketU+005B
Reverse Solidus (Backslash)Reverse SolidusU+005C
Right Square BracketRight Square BracketU+005D
Circumflex AccentCircumflex AccentU+005E
Left Curly BracketLeft Curly BracketU+007B
Right Curly BracketRight Curly BracketU+007D
Pound Sign (Sterling)Pound SignU+00A3
Yen SignYen SignU+00A5
Latin Capital Letter A with DieresisLatin Capital Letter A with DieresisU+00C4
Latin Capital Letter A with Ring AboveLatin Capital Letter A with Ring AboveU+00C5
Latin Capital Letter AELatin Capital Letter AEU+00C6
Latin Capital Letter N with TildeLatin Capital Letter N with TildeU+00D1
Latin Capital Letter O with DieresisLatin Capital Letter O with DieresisU+00D6
Latin Capital Letter O with StrokeLatin Capital Letter O with StrokeU+00D8
Latin Capital Letter U with DieresisLatin Capital Letter U with DieresisU+00DC
Close

Remaining characters

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

More information Name, Glyph ...
Additional OCR-A Characters
NameGlyphUnicodeUnicode Name
Long Vertical MarkLong Vertical MarkU+007CVertical Line
Close

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:

More information Name, Glyph ...
Additional ASCII characters
NameGlyphUnicode
Low LineLow LineU+005F
Grave AccentGrave AccentU+0060
Vertical LineVertical LineU+007C
TildeTildeU+007E
Close

Linotype also defines additional characters.[24]

Exceptions

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

PrecisionID

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

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

Barcodesoft

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

  • 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

Morovia

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

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

IDAutomation

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

  • 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

See also

Notes

Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.