Recent from talks
Nothing was collected or created yet.
OCR-A
View on Wikipedia| Category | Sans-serif |
|---|---|
| Classification | Geometric |
| Commissioned by | American National Standards Institute |
| Foundry | American Type Founders |
| Date released | 1966 |
| Variations | OCR-A Extended |
| Sample | |
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).
Standardization
[edit]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
[edit]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 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).[15]
Japanese typeface foundry Visual Design Laboratory (VDL) designed two typefaces based on the OCR-A typeface: one for Simplified Chinese characters named Jieyouti[16] and one for Japanese characters named Yota G (ヨタG)[17] , both available in five weights (Light, Regular, Medium, Semi Bold, Bold).
Use
[edit]
Although optical character recognition technology has advanced to the point where such simple fonts are no longer necessary,[18] 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.[19] 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.
Code points
[edit]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
[edit]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:
| Character | Image | Location | In ASCII | Comments |
|---|---|---|---|---|
| £ | 0x23 | # | Matches BS 4730, the United Kingdom variant of ISO 646.[21] | |
| { | 0x28 | ( | Character name is still "LEFT PARENTHESIS", despite showing a brace. Usual left brace ASCII code 0x7B is omitted.[20] | |
| } | 0x29 | ) | Character name is still "RIGHT PARENTHESIS", despite showing a brace. Usual right brace ASCII code 0x7D is omitted.[20] | |
| ⑀ | 0x3C | < | ||
| ⑁ | 0x3E | > | ||
| ¥ | 0x5C | \ | Matches JIS X 0201. Included in JIS X 9010, but omitted by ISO 2033.[20] | |
| ⑂ | 0x5D | ] |
Additionally, the long vertical mark (
) is encoded at 0x7C, corresponding to the ASCII vertical bar (|).[20]
Dedicated OCR-A characters in Unicode
[edit]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 | ⑀ | U+2440 | |
| OCR Chair | ⑁ | U+2441 | |
| OCR Fork | ⑂ | U+2442 | |
| OCR Inverted fork | ⑃ | ⑃ | U+2443 |
| OCR Belt buckle | ⑄ | ⑄ | U+2444 |
| OCR Bow tie | ⑅ | ⑅ | U+2445 |
Space, digits, and unaccented letters
[edit]


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
[edit]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.
Remaining characters
[edit]Linotype[23] coded the remaining characters of OCR-A as follows:
| Name | Glyph | Unicode | Unicode Name |
|---|---|---|---|
| Long Vertical Mark | U+007C | Vertical Line |
Additional characters
[edit]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:
| Name | Glyph | Unicode |
|---|---|---|
| Low Line | U+005F | |
| Grave Accent | U+0060 | |
| Vertical Line | U+007C | |
| Tilde | U+007E |
Linotype also defines additional characters.[24]
Exceptions
[edit]Some implementations do not use the above code point assignments for some characters.
PrecisionID
[edit]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
[edit]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
[edit]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
[edit]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
[edit]See also
[edit]- Magnetic ink character recognition
- Optical character recognition
- Westminster (typeface), a typeface designed to resemble the visual appearance of MICR.
- OCR-B
Notes
[edit]- ^ National Institute of Standards and Technology (1981). American National Standard Character Set for Optical Character Recognition (OCR-A) (PDF). ANSI X3.17-1981. American National Standards Institute, Inc. p. 3.
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.
- ^ Background on the OCR-A font from Adobe
- ^ a b "OCR A".
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.
- ^ Motivation for OCR-A from Microscan
- ^ "Background on OCR from Embedded Software Engineering". Archived from the original on 2016-09-17. Retrieved 2012-09-01.
- ^ The MetaFont sources for OCR-A from CTAN
- ^ John Sauter's 2004 OCR-A font from those MetaFont sources
- ^ The fonts-ocr-a Debian packages, based on John Sauter's SourceForge project
- ^ Luc Devroye's account of his changes to John Sauter's implementation of OCR-A
- ^ Matthew Skala's home page
- ^ The mftrace Debian package
- ^ Matthew Skala's 2012 OCR-A font from the MetaFont sources
- ^ Hoefler, Jonathan. "Two Fools". Hoefler & Co. Retrieved 18 September 2021.
- ^ "Technology, Fall '97". Rolling Stone. No. 774. 1997-11-27. p. 59.
- ^ "OCR-X typeface". Maxitype. Retrieved 24 September 2023.
- ^ "Jieyouti typeface" (in Japanese). Visual Design Laboratory. Retrieved 25 March 2025.
- ^ "Yota G typeface" (in Japanese). Visual Design Laboratory. Retrieved 27 June 2025.
- ^ "The History of OCR". Data Processing Magazine. 12: 46. 1970.
- ^ "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."" (PDF). Archived from the original (PDF) on 2017-03-01. Retrieved 2015-07-30.
- ^ a b c d e ISO/TC97/SC2 (1985-08-01). Japanese OCR-A Graphic Character Set (PDF). ITSCJ/IPSJ. ISO-IR-91.
{{citation}}: CS1 maint: numeric names: authors list (link) - ^ BSI (1975-12-01). The set of graphic characters of the United Kingdom 7-bit data code (PDF). ITSCJ/IPSJ. ISO-IR-4.
- ^ "Optical Character Recognition" (PDF). Unicode Consortium. Archived (PDF) from the original on 4 January 2023. Retrieved 4 January 2023.
- ^ Linotype's OCR-A font: choose Character Map to see the characters and their coding
- ^ Linotype's OCR-A Extended font: choose Character Map then Show all
- ^ PrecisionID User Guide for the PrecisionID implementation of the OCR-A font
- ^ Information page for the Barcode implementation of the OCR-A font
- ^ Another source of information about the Barcode fonts
- ^ Information page for the Morovia implementation of the OCR-A font
- ^ Information page for the IDAutomation implementation of the OCR-A and OCR-B fonts
External links
[edit]OCR-A
View on GrokipediaHistory and Standardization
Development Origins
The OCR-A character set originated in the United States in 1961 as a numeric-only font designed specifically for early optical character recognition (OCR) systems, addressing the limitations of mechanical readers in processing printed numerals.[5] In 1966, the font was expanded by the American Type Founders (ATF) into a full alphanumeric set comprising 57 characters, including numerals, capital letters, and four abstract symbols, to meet the growing demand for standardized machine-readable text in data processing applications.[5][1] This development occurred amid significant challenges in early computer-era OCR, where mechanical scanners struggled with ambiguous character shapes in conventional typefaces, necessitating simplified designs that minimized recognition errors while remaining legible to humans.[6] Key milestones include the first issuance of the expanded OCR-A font in 1966 under ANSI X3.17 and its initial practical implementation in 1968, marking the transition from prototyping to widespread use in automated systems.[5][7]Standardization Process
The standardization of OCR-A began with its formal adoption by the American National Standards Institute (ANSI) as ANSI X3.17-1966, which defined the initial set of 57 alphanumeric characters designed specifically for optical character recognition systems.[5] This standard was developed under the auspices of the ANSI X3 Committee and its Subcommittee X3A1 to establish consistent graphic shapes that could be reliably recognized by early OCR machines, with a focus on achieving high accuracy in automated data processing.[5] Subsequent revisions expanded the character set and refined the specifications: ANSI X3.17-1974 increased the repertoire to 86 characters by adding lowercase letters and special symbols, while ANSI X3.17-1977 aligned it more closely with the ASCII standard, reaching 97 characters; the current version, ANSI X3.17-1981, further optimized character positioning and shapes for three print sizes (I, III, and IV).[5] These updates were driven by the need to support evolving OCR technologies while maintaining backward compatibility. The U.S. Bureau of Standards (now the National Institute of Standards and Technology, NIST) played a pivotal role in establishing the criteria for OCR fonts like OCR-A, prioritizing designs that enabled error-free recognition rates in machine reading under varying print conditions.[5] Adopted as Federal Information Processing Standard (FIPS) PUB 32-1 in 1981, the standard was reviewed every five years through a consensus process involving industry stakeholders to ensure its applicability in federal systems.[5] Today, maintenance of the ANSI standard falls under the InterNational Committee for Information Technology Standards (INCITS), which reaffirmed it as INCITS 17-1981 (S2017), prescribing shapes and sizes for OCR-A characters to facilitate consistent implementation across systems.[8] On the international front, OCR-A was incorporated into ISO 1073-1:1976, which specifies the printed image shapes and dimensions of alphanumeric characters and symbols for optical recognition, harmonizing the U.S. standard for global use.[9] ANSI and ISO defined the font's scope primarily for banking, financial transactions, and general data processing applications, where reliable machine readability was essential to minimize errors in automated encoding and decoding processes.[5][9] This dual framework ensured OCR-A's widespread adoption in environments requiring high-fidelity character recognition, such as check processing and archival records.Design Characteristics
Typographic Features
OCR-A features a sans-serif, geometric style with simple, uniform letterforms constructed from thick, bold strokes, intentionally designed to mitigate scanning errors arising from ink spread, misalignment, or print degradation in optical character recognition systems.[5] This approach prioritizes machine efficiency by employing clean, unadorned shapes that maintain high contrast and structural integrity under varied printing conditions.[5] The typeface adopts a monospaced layout, assigning each character a fixed width to promote uniform spacing and reliable alignment during automated scanning processes.[5] This structural consistency ensures that positional variations do not compromise recognition accuracy in early OCR hardware.[10] To eliminate potential confusions in machine interpretation, OCR-A avoids serifs, decorative curves, and visually similar elements, such as distinguishing the letter 'O' from the numeral '0' through their distinct oval shapes and proportions.[5] These choices reflect a deliberate emphasis on unambiguous, block-like forms over fluid aesthetics.[5] Although legible to humans, the resulting bold and blocky appearance trades visual elegance for functional robustness, rendering it suboptimal for prolonged reading compared to conventional typefaces.[11] The design's criteria, as outlined in ANSI X3.17-1981, underscore this optimization for optical scanning over humanistic proportions.[5]Specifications and Metrics
OCR-A is defined as a monospaced font where printers are required to position glyphs 0.254 cm (0.10 inches) apart horizontally, ensuring consistent fixed-width character placement for machine readability.[5] Optical character recognition systems must accept any horizontal spacing between characters ranging from 0.2286 cm (0.09 inches) minimum to 0.4572 cm (0.18 inches) maximum for Sizes I and III, with Size IV accommodating a broader range of 0.3302 cm (0.13 inches) to 0.6604 cm (0.26 inches) to maintain recognition accuracy despite minor printing variations.[5] Glyph heights are standardized per size to optimize scanning: Size I at 0.2388 cm (0.094 inches), Size III at 0.3200 cm (0.126 inches), and Size IV at 0.3810 cm (0.150 inches), though recognition systems tolerate overall glyph heights within 0.2286–0.4572 cm (0.09–0.18 inches) across implementations.[5] Baseline alignment requires all characters to share a common horizontal baseline, with vertical displacements limited to ensure precise row synchronization during mechanical scanning; this standard was tailored to the capabilities of 1960s-era optical readers, which relied on fixed alignments for reliable pattern matching.[5] Stroke widths are uniformly specified as 0.0356 cm (0.014 inches) for Size I and 0.0381 cm (0.015 inches) for Size III, with tolerances of ±0.0076 cm (±0.003 inches), increasing to 0.0508 cm (0.020 inches) ±0.0127 cm (±0.005 inches) for Size IV, promoting consistent line thickness that early scanners could differentiate from background noise.[5] Printing must employ high-contrast, carbon-pigmented black inks on plain white paper with high reflectance to achieve a minimum Print Contrast Signal (PCS) of 0.70 over 90% of the character area, ensuring spectral absorption suitable for broad-spectrum OCR illumination.[12] Paper quality is specified as 20–24 pound OCR bond to minimize voids and spots, with tolerances limiting voids or extraneous spots to under 0.1 mm in diameter for high-quality prints and up to 0.2 mm for acceptable ones, separated by at least 1.0 mm.[12] Position tolerances include a maximum character skew of 3 degrees and adjacent-character misalignment not exceeding 0.69 mm (0.027 inches) for Size I, scaling proportionally for larger sizes, to accommodate minor document handling errors in legacy scanning equipment.[13] These metrics collectively enable OCR-A's geometric simplicity to support robust recognition under the constraints of mid-20th-century technology.[5]Character Set and Encoding
Standard Characters
The standard character set of OCR-A comprises 57 glyphs optimized for optical character recognition in early automated data processing systems. This core repertoire includes 26 uppercase letters (A–Z), 10 digits (0–9), and 21 punctuation and symbolic characters essential for form-based data entry, such as the hyphen (-), slash (/), period (.), comma (,), dollar sign ($), percent (%), plus (+), minus (−), equals (=), asterisk (*), and ampersand (&).[5] These characters were designed with modifications to maximize distinguishability under varying printing and scanning conditions, prioritizing machine readability over aesthetic appeal. For instance, the letter O is formed as a closed rectangle to prevent confusion with the digit 0; the letter I lacks serifs or crossbars, resembling a simple vertical stroke to differentiate it from 1 or l; the letter S employs straight-line segments rather than fluid curves; and the digit 8 features squared-off loops for sharper edge detection. Similar adjustments apply to other letters like B (with rectangular lobes) and numerals like 2 (with a flat top) to reduce recognition errors in low-contrast environments.[5] The set draws from a modified 7-bit ASCII framework to ensure seamless integration with contemporary computing hardware for alphanumeric transcription from documents like checks and invoices. Developed in 1966 by the American Type Founders under U.S. Bureau of Standards guidelines, these 57 characters supported efficient, error-resistant input for financial and administrative applications before the later expansion to include lowercase letters.[5]| Category | Examples | Design Notes |
|---|---|---|
| Uppercase Letters (26) | A, B, C, ..., Z | Bold, blocky forms with straight lines; e.g., O as rectangle, I as plain vertical bar. |
| Digits (10) | 0, 1, 2, ..., 9 | Uniform stroke width; e.g., 0 with slanted sides, 8 with squared loops for clarity. |
| Punctuation/Symbols (21) | -, /, ., ,, $, %, +, =, *, & | Minimalist shapes; e.g., hyphen as short horizontal bar, period as small dot without flourish. |