OCR-A#Additional characters

{{Short description|Typeface designed for early computer OCR}}

{{Infobox font

| name = OCR-A

| image = OCR-A font.svg

| sample = 220px

| style = Sans-serif

| classifications = Geometric

| releasedate = 1966

| foundry = American Type Founders

| commissioned_by = American National Standards Institute

| variations = OCR-A Extended

}}

OCR-A is a font issued in 1966{{Cite book |url=https://nvlpubs.nist.gov/nistpubs/Legacy/FIPS/fipspub32-1-1981.pdf |title=American National Standard Character Set for Optical Character Recognition (OCR-A) |publisher=American National Standards Institute, Inc |year=1981 |series=ANSI X3.17-1981 |pages=3 |author=National Institute of Standards and Technology |quote=The OCR-A character set for optical character recognition was first developed in the United States in 1961 as a numeric font only. In 1966 an alphanumeric font which contained 57 characters, including the existing numeric font, 4 abstract characters, and only capital letters, was issued. The revised standard was entitled American National Standard Character Set for Optical Character Recognition, ANSI X3.17-1966.}} and first implemented in 1968.[https://typekit.com/fonts/ocr-a-std Background on the OCR-A font from Adobe]{{cite web |url=https://fonts.adobe.com/fonts/ocr-a#about-section |title=OCR A |quote=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 read by a machine, but it is slightly more difficult for the human eye to read. OCR-A follows the 1981 standard set by the American National Standards Institute (ANSI), X-3.17-1981 (size I). The same design is also specified for the German DIN 66008 standard. OCR-B was designed in 1968 by Adrian Frutiger for Monotype. This design pushes the limits of the optical reader, but is easier for people to read. OCR-B’s construction follows the ISO 1073/II-1976 (E) standard, with 1979 corrections (letterpress design, size I). Both OCR-A and OCR-B have “alternate” versions, which have the standard ISO-Adobe character set instead of the more limited OCR character set. }} 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.[http://www.microscan.com/en-us/technology/opticalcharacterrecognition.aspx Motivation for OCR-A from Microscan] OCR-A uses simple, thick strokes to form recognizable characters.{{Cite web |url=http://embeddedengineeringgroup.com/ESE/auto-id.html |title=Background on OCR from Embedded Software Engineering |access-date=2012-09-01 |archive-url=https://web.archive.org/web/20160917080003/http://embeddedengineeringgroup.com/ESE/auto-id.html |archive-date=2016-09-17 |url-status=dead }}

The font is monospaced (fixed-width), with the printer required to place glyphs {{val|0.254}} cm ({{val|0.10}} inch) apart, and the reader required to accept any spacing between {{val|0.2286}} cm ({{val|0.09}} inch) and {{val|0.4572}} cm ({{val|0.18}} inch).

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

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.{{when|date=November 2017}} That definition was subsequently improved by Richard B. Wales. Their work is available from CTAN.[https://ctan.org/pkg/ocr-a The MetaFont sources for OCR-A 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.[http://sourceforge.net/project/showfiles.php?group_id=121297 John Sauter's 2004 OCR-A font from those MetaFont sources] In 2007, Gürkan Sengün created a Debian package from this implementation.[https://packages.debian.org/search?keywords=fonts-ocr-a The fonts-ocr-a Debian packages, based on John Sauter's SourceForge project] In 2008. Luc Devroye corrected the vertical positioning in John Sauter's implementation, and fixed the name of lower case z.[http://luc.devroye.org/fonts-48501.html Luc Devroye's account of his changes to John Sauter's implementation of OCR-A]

Independently, Matthew Skala[https://ansuz.sooke.bc.ca/ Matthew Skala's home page] used mftrace[http://packages.debian.org/mftrace The mftrace Debian package] 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.[https://tsukurimashou.org/ocr.php.en Matthew Skala's 2012 OCR-A font from the MetaFont sources]

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.{{cite web |last1=Hoefler |first1=Jonathan |title=Two Fools |url=https://www.typography.com/blog/two-fools |website=Hoefler & Co. |access-date=18 September 2021}}{{cite magazine |title=Technology, Fall '97 |magazine=Rolling Stone |issue=774 |date=1997-11-27 |page=59}}

Maxitype designed the OCR-X typeface—based on the OCR-A typeface with OpenType features, alien/technology-themed dingbats and available in six weights (Thin, Light, Regular, Medium, Bold, Black).{{cite web|title=OCR-X typeface|url=https://maxitype.com/typeface/ocr-x/|publisher=Maxitype|access-date=24 September 2023}}

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).{{cite web|title=Jieyouti typeface|url=https://www.vdl.co.jp/font-hosei-vdl/yotag.html|publisher=Visual Design Laboratory|access-date=25 March 2025|language=ja}}

Use

File:Verrechnungsscheck, WestLB, Landeshauptkasse Düsseldorf, 2004.jpg. 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,{{cite journal |journal=Data Processing Magazine |title=The History of OCR |volume=12 |year=1970 |page=46}} 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.{{Cite web |url=https://www.pnc.com/content/dam/pnc-com/pdf/corporateandinstitutional/Treasury%20Management/Healthcare/078_Patient_Pay_Lockbox_3-13.pdf |title=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." |access-date=2015-07-30 |archive-date=2017-03-01 |archive-url=https://web.archive.org/web/20170301092812/https://www.pnc.com/content/dam/pnc-com/pdf/corporateandinstitutional/Treasury%20Management/Healthcare/078_Patient_Pay_Lockbox_3-13.pdf |url-status=dead }} 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|date=December 2022}} 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.

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 (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.{{cite iso-ir |number=91 |title=Japanese OCR-A Graphic Character Set |sponsor=ISO/TC97/SC2 |sponsor-link=ISO/IEC JTC 1/SC 2#History |date=1985-08-01}} Codes which are redefined relative to ASCII, as opposed to simply omitted, are listed below:

class="wikitable sortable"

! Character !! Image !! Location !! In ASCII !! Comments

£Image:OCR-A char Pound Sign.svg0x23#Matches BS 4730, the United Kingdom variant of ISO 646.{{cite iso-ir |title=The set of graphic characters of the United Kingdom 7-bit data code |sponsor=BSI |sponsor-link=BSI Group |date=1975-12-01 |number=4}}
{Image:OCR-A char Left Curly Bracket.svg0x28(Character name is still "LEFT PARENTHESIS", despite showing a brace. Usual left brace ASCII code 0x7B is omitted.
}Image:OCR-A char Right Curly Bracket.svg0x29)Character name is still "RIGHT PARENTHESIS", despite showing a brace. Usual right brace ASCII code 0x7D is omitted.
Image:OCR-A char OCR Hook.svg0x3C<
Image:OCR-A char OCR Chair.svg0x3E>
¥Image:OCR-A char Yen Sign.svg0x5C\Matches JIS X 0201. Included in JIS X 9010, but omitted by ISO 2033.
Image:OCR-A char OCR Fork.svg0x5D]

Additionally, the long vertical mark (Image:OCR-A char Long Vertical Mark.svg) is encoded at 0x7C, corresponding to the ASCII vertical bar (|).

= Dedicated OCR-A characters in Unicode =

{{Main|Optical Character Recognition (Unicode block)}}

The following characters have been defined for control purposes and are now in the "Optical Character Recognition" Unicode range 2440–245F:

class="wikitable sortable"

|+ Dedicated OCR-A code points based on ASCII and Unicode{{Cite web |access-date=4 January 2023 |title=Optical Character Recognition |url=https://www.unicode.org/charts/PDF/U2440.pdf |url-status=live |archive-url=https://web.archive.org/web/20230104125606/https://www.unicode.org/charts/PDF/U2440.pdf |archive-date=4 January 2023 |website=Unicode Consortium}}

Namealign="center" | Image

!Text

Unicode
OCR Hookalign="center" | Image:OCR-A char OCR Hook.svg

|⑀

U+2440
OCR Chairalign="center" | Image:OCR-A char OCR Chair.svg

|⑁

| U+2441

OCR Forkalign="center" | Image:OCR-A char OCR Fork.svg

|⑂

U+2442
OCR Inverted forkalign="center" | {{large|⑃}}

|⑃

U+2443
OCR Belt bucklealign="center" | {{large|⑄}}

|⑄

U+2444
OCR Bow tiealign="center" | {{large|⑅}}

|⑅

U+2445

=Space, digits, and unaccented letters=

Image:OCR-A char digits.svg

Image:OCR-A char unaccented capital letters.svg

Image:OCR-A char unaccented small letters.svg

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.

class="wikitable sortable"

|+ Additional OCR-A code points based on ASCII and Unicode

Namealign="center" | GlyphUnicode
Exclamation Markalign="center" | Image:OCR-A char Exclamation Mark.svgU+0021
Quotation Markalign="center" | Image:OCR-A char Quotation Mark.svgU+0022
Number Signalign="center" | Image:OCR-A char Number Sign.svgU+0023
Dollar Signalign="center" | Image:OCR-A char Dollar Sign.svgU+0024
Percent Signalign="center" | Image:OCR-A char Percent Sign.svgU+0025
Ampersandalign="center" | Image:OCR-A char Ampersand.svgU+0026
Apostrophealign="center" | Image:OCR-A char Apostrophe.svgU+0027
Left Parenthesisalign="center" | Image:OCR-A char Left Parenthesis.svgU+0028
Right Parenthesisalign="center" | Image:OCR-A char Right Parenthesis.svgU+0029
Asteriskalign="center" | Image:OCR-A char Asterisk.svgU+002A
Plus Signalign="center" | Image:OCR-A char Plus Sign.svgU+002B
Commaalign="center" | Image:OCR-A char Comma.svgU+002C
Hyphen-Minusalign="center" | Image:OCR-A char Hyphen-Minus.svgU+002D
Full Stop (Period)align="center" | Image:OCR-A char Full Stop.svgU+002E
Solidus (Slash)align="center" | Image:OCR-A char Solidus.svgU+002F
Colonalign="center" | Image:OCR-A char Colon.svgU+003A
Semicolonalign="center" | Image:OCR-A char Semicolon.svgU+003B
Less-Than Signalign="center" | Image:OCR-A char Less-Than Sign.svgU+003C
Equals Signalign="center" | Image:OCR-A char Equals Sign.svgU+003D
Greater-Than Signalign="center" | Image:OCR-A char Greater-Than Sign.svgU+003E
Question Markalign="center" | Image:OCR-A char Question Mark.svgU+003F
Commercial Atalign="center" | Image:OCR-A char Commercial At.svgU+0040
Left Square Bracketalign="center" | Image:OCR-A char Left Square Bracket.svgU+005B
Reverse Solidus (Backslash)align="center" | Image:OCR-A char Reverse Solidus.svgU+005C
Right Square Bracketalign="center" | Image:OCR-A char Right Square Bracket.svgU+005D
Circumflex Accentalign="center" | Image:OCR-A char Circumflex Accent.svgU+005E
Left Curly Bracketalign="center" | Image:OCR-A char Left Curly Bracket.svgU+007B
Right Curly Bracketalign="center" | Image:OCR-A char Right Curly Bracket.svgU+007D
Pound Sign (Sterling)align="center" | Image:OCR-A char Pound Sign.svgU+00A3
Yen Signalign="center" | Image:OCR-A char Yen Sign.svgU+00A5
Latin Capital Letter A with Dieresisalign="center" | Image:OCR-A char A with Dieresis.svgU+00C4
Latin Capital Letter A with Ring Abovealign="center" | Image:OCR-A char A with Ring Above.svgU+00C5
Latin Capital Letter AEalign="center" | Image:OCR-A char AE.svgU+00C6
Latin Capital Letter N with Tildealign="center" | Image:OCR-A char N with Tilde.svgU+00D1
Latin Capital Letter O with Dieresisalign="center" | Image:OCR-A char o with Dieresis.svgU+00D6
Latin Capital Letter O with Strokealign="center" | Image:OCR-A char O with Stroke.svgU+00D8
Latin Capital Letter U with Dieresisalign="center" | Image:OCR-A char u with Dieresis.svgU+00DC

=Remaining characters=

Linotype[https://www.linotype.com/1085573/ocr-a-regular-product.html Linotype's OCR-A font: choose Character Map to see the characters and their coding] coded the remaining characters of OCR-A as follows:

class="wikitable sortable"

|+ Additional OCR-A Characters

Namealign="center" | GlyphUnicode || Unicode Name
Long Vertical Markalign="center" | Image:OCR-A char Long Vertical Mark.svgU+007CVertical Line

=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:

class="wikitable sortable"

|+ Additional ASCII characters

Namealign="center" | GlyphUnicode
Low Linealign="center" | Image:OCR-A char Low Line.svgU+005F
Grave Accentalign="center" | Image:OCR-A char Grave Accent.svgU+0060
Vertical Linealign="center" | Image:OCR-A char Vertical Line.svgU+007C
Tildealign="center" | Image:OCR-A char Tilde.svgU+007E

Linotype also defines additional characters.[https://www.linotype.com/900974/ocr-a-extended-product.html Linotype's OCR-A Extended font: choose Character Map then Show all]

=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:[http://www.precisionid.com/tutorials/OCR_Font_User_Manual.pdf PrecisionID User Guide for the PrecisionID implementation of the OCR-A font]

  • 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:[http://www.barcode-soft.com/ocr_font.aspx Information page for the Barcode implementation of the OCR-A font][http://www.ozgrid.com/barcodes/ocr-font.htm Another source of information about the Barcode fonts]

  • 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:[http://morovia.com/font/ocr.asp Information page for the Morovia implementation of the OCR-A font]

  • 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:[http://www.idautomation.com/ocr-a-and-ocr-b-fonts/#product-information Information page for the IDAutomation implementation of the OCR-A and OCR-B fonts]

  • 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

  • [https://www.amazon.com/dp/B000Y2U4OG Hardcopy of ISO 1073-1:1976, distributed through ANSI, from Amazon.com]
  • [http://www.techstreet.com/cgi-bin/detail?product_id=56168 ISO 1073-1 is also available from Techstreet, who distributes standards for ANSI and ISO]

See also

Notes

{{Reflist|2}}