{"id":18206,"date":"2026-07-07T17:01:20","date_gmt":"2026-07-07T21:01:20","guid":{"rendered":"https:\/\/scruss.com\/blog\/?p=18206"},"modified":"2026-07-07T17:01:20","modified_gmt":"2026-07-07T21:01:20","slug":"new-font-ocrma","status":"publish","type":"post","link":"https:\/\/scruss.com\/blog\/2026\/07\/07\/new-font-ocrma\/","title":{"rendered":"New font: OCRmA"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">A rendering of a 9-pin dot matrix font intended for OCR use, specified in FIPS PUB 129 \/ ANSI X3.111-1986 \u201c<a href=\"https:\/\/nvlpubs.nist.gov\/nistpubs\/Legacy\/FIPS\/fipspub129.pdf\">Optical Character Recognition (OCR) \u2014 Matrix Character Sets for OCR-MA<\/a>\u201d<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"742\" src=\"https:\/\/scruss.com\/wordpress\/wp-content\/uploads\/2026\/07\/OCRmA-Sample-1024x742.png\" alt=\"Fixed width dot matrix font sample\" class=\"wp-image-18205\" srcset=\"https:\/\/scruss.com\/wordpress\/wp-content\/uploads\/2026\/07\/OCRmA-Sample-1024x742.png 1024w, https:\/\/scruss.com\/wordpress\/wp-content\/uploads\/2026\/07\/OCRmA-Sample-320x232.png 320w, https:\/\/scruss.com\/wordpress\/wp-content\/uploads\/2026\/07\/OCRmA-Sample-160x116.png 160w, https:\/\/scruss.com\/wordpress\/wp-content\/uploads\/2026\/07\/OCRmA-Sample-768x557.png 768w, https:\/\/scruss.com\/wordpress\/wp-content\/uploads\/2026\/07\/OCRmA-Sample.png 1484w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">a lovely font if you don&#8217;t need lower case or punctuation<\/figcaption><\/figure>\n\n\n\n<div class=\"wp-block-file\"><a id=\"wp-block-file--media-5f17dde7-3787-4d03-8d9d-4307a1433d56\" href=\"https:\/\/scruss.com\/wordpress\/wp-content\/uploads\/2026\/07\/OCRmA-Regular.zip\">OCRmA-Regular.zip<\/a><a href=\"https:\/\/scruss.com\/wordpress\/wp-content\/uploads\/2026\/07\/OCRmA-Regular.zip\" class=\"wp-block-file__button wp-element-button\" download aria-describedby=\"wp-block-file--media-5f17dde7-3787-4d03-8d9d-4307a1433d56\">Download<\/a><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">(github mirror: <a href=\"https:\/\/github.com\/scruss\/OCRmA\">scruss\/OCRmA: 9-pin dot matrix font based on FIPS PUB 129 \/ ANSI X3.111-1986<\/a>)<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Coverage<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Extremely limited character set:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\n1 2 3 4 5 6 7 8 9 0 \nA B C D E F G H I J K L M N O P Q R S T U V W X Y Z \n\u2440 \u2441 \u2442 + - . \/ $ &amp;lt; &gt; &quot; , \u00a5\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">Lower case character glyphs are duplicates of upper case ones, although this is outside the X3.111-1986 standard.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Design Size<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The 12 point design size is meant to reproduce 12 characters per inch horizontally, and six lines per inch vertically. OCR standards of 1986 suggested three lines per vertical inch, which can be achieved by double spacing.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Source<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">While this font is produced entirely by one Python <a href=\"https:\/\/fontforge.org\/\">FontForge<\/a> script, the code is too ugly for you to look at. The included <code>OCRmA.json<\/code> is likely more useful: it contains all of the pin definitions keyed by character name.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Licence<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a9 2026 &#8211; Stewart Russell, scruss.com with Reserved Font Name OCRmA<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This Font Software is licensed under the SIL Open Font Licence, Version 1.1. https:\/\/openfontlicense.org\/<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">[I do not agree with SIL\u2019s missionary work in any way, and the use of this licence isn\u2019t an endorsement of SIL.]<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">References<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/nvlpubs.nist.gov\/nistpubs\/Legacy\/FIPS\/fipspub129.pdf\">Optical Character Recognition (OCR) \u2014 Matrix Character Sets for OCR-MA<\/a> &#8211; FIPS PUB 129 \/ ANSI X3.111-1986.<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>A rendering of a 9-pin dot matrix font intended for OCR use, specified in FIPS PUB 129 \/ ANSI X3.111-1986 \u201cOptical Character Recognition (OCR) \u2014 Matrix Character Sets for OCR-MA\u201d (github mirror: scruss\/OCRmA: 9-pin dot matrix font based on FIPS PUB 129 \/ ANSI X3.111-1986) Coverage Extremely limited character set: Lower case character glyphs are [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"jetpack_post_was_ever_published":false},"categories":[3375],"tags":[2409,1374,2495,2958,3376,2123],"class_list":["post-18206","post","type-post","status-publish","format-standard","hentry","category-type","tag-dotmatrix","tag-font","tag-ocr","tag-otf","tag-type","tag-typography"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_shortlink":"https:\/\/wp.me\/pQNZZ-4JE","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/scruss.com\/blog\/wp-json\/wp\/v2\/posts\/18206","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/scruss.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/scruss.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/scruss.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/scruss.com\/blog\/wp-json\/wp\/v2\/comments?post=18206"}],"version-history":[{"count":2,"href":"https:\/\/scruss.com\/blog\/wp-json\/wp\/v2\/posts\/18206\/revisions"}],"predecessor-version":[{"id":18209,"href":"https:\/\/scruss.com\/blog\/wp-json\/wp\/v2\/posts\/18206\/revisions\/18209"}],"wp:attachment":[{"href":"https:\/\/scruss.com\/blog\/wp-json\/wp\/v2\/media?parent=18206"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/scruss.com\/blog\/wp-json\/wp\/v2\/categories?post=18206"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/scruss.com\/blog\/wp-json\/wp\/v2\/tags?post=18206"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}