{"id":18220,"date":"2026-07-19T01:10:18","date_gmt":"2026-07-19T05:10:18","guid":{"rendered":"https:\/\/scruss.com\/blog\/?p=18220"},"modified":"2026-07-19T01:10:18","modified_gmt":"2026-07-19T05:10:18","slug":"new-font-nearlyq","status":"publish","type":"post","link":"https:\/\/scruss.com\/blog\/2026\/07\/19\/new-font-nearlyq\/","title":{"rendered":"New font: NearlyQ"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">A rendering of a 9-pin \u201cNear Letter Quality\u201d dot matrix font. Derived from the character ROM of an Amstrad DMP3160 printer.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"875\" height=\"621\" src=\"https:\/\/scruss.com\/wordpress\/wp-content\/uploads\/2026\/07\/NearlyQ_sample.png\" alt=\"image of text: Hey, do you like dot matrix printers? You do? Well, I have quite the treat for you: NearlyQ, the \u201cNear Letter Quality\u201d 9pin printer simulating font! Derived directly from the character ROM from an Amstrad DMP3160 printer, it has *all* of the characters: [character table removed] There\u2019s also NearlyQMono for the fixed-width text in your life. Both fonts come with \u00bb\u00bb\u00bbBOLD\u00ab\u00ab\u00ab variants, too! Much ? to the CPCWiki contributors for the ROM dumps (C) 2026, Stewart Russell \u2013 scruss.com - OFL\" class=\"wp-image-18218\" srcset=\"https:\/\/scruss.com\/wordpress\/wp-content\/uploads\/2026\/07\/NearlyQ_sample.png 875w, https:\/\/scruss.com\/wordpress\/wp-content\/uploads\/2026\/07\/NearlyQ_sample-320x227.png 320w, https:\/\/scruss.com\/wordpress\/wp-content\/uploads\/2026\/07\/NearlyQ_sample-160x114.png 160w, https:\/\/scruss.com\/wordpress\/wp-content\/uploads\/2026\/07\/NearlyQ_sample-768x545.png 768w\" sizes=\"auto, (max-width: 875px) 100vw, 875px\" \/><figcaption class=\"wp-element-caption\">somebody, somewhere, is probably still producing invoices like this<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">I started work on this in 2017, revisited it in late 2018, forgot about it for a few years and then finally completed it in a couple of days in July 2026. My focus is second-to-none!<\/p>\n\n\n\n<div class=\"wp-block-file\"><a id=\"wp-block-file--media-72cbdb8b-7f4e-45e8-8ef6-b356565a4e82\" href=\"https:\/\/scruss.com\/wordpress\/wp-content\/uploads\/2026\/07\/NearlyQ.zip\">NearlyQ.zip<\/a><a href=\"https:\/\/scruss.com\/wordpress\/wp-content\/uploads\/2026\/07\/NearlyQ.zip\" class=\"wp-block-file__button wp-element-button\" download aria-describedby=\"wp-block-file--media-72cbdb8b-7f4e-45e8-8ef6-b356565a4e82\">Download<\/a><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">(github mirror: <a href=\"https:\/\/github.com\/scruss\/NearlyQ\">scruss\/NearlyQ: A rendering of a 9-pin \u201cNear Letter Quality\u201d dot matrix font. Derived from the character ROM of an Amstrad DMP3160 printer.<\/a>)<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Coverage<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">ASCII, plus many European characters. Please see the sample above.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Proportional and mono-spaced versions are provided, each with a bold variant.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>The DMP3160 ROM includes italics, but the coverage is not quite the same and they don\u2019t look great. So I didn\u2019t convert them.<\/li>\n\n\n\n<li>I clearly added some extra characters to the bitmaps at some point, as the DMP3160 pre-dates the \u20ac sign, and yet, there it is!<\/li>\n\n\n\n<li>The character spacings may not be the same as you\u2019d get on a DMP3160. While the ROM does contain proportional character widths, they seem very wide. Values based on the actual widths of the bitmaps were used.<\/li>\n\n\n\n<li>9-pin printers in text mode couldn\u2019t kern, so neither does this.<\/li>\n\n\n\n<li>The bold (technically, double-strike) mode used here would be impossible for a DMP3160 to reproduce. You should care less about this than I do. (I don\u2019t, at all.)<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Design Size<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Nominally 12 point \/ 6 lines per inch.<\/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 per variant, the code is too ugly for you to look at. The included <code>NearlyQ.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 Names NearlyQ and NearlyQMono<\/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\">Acknowledgements \/ References<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Huge thanks to <a href=\"https:\/\/www.cpcwiki.eu\/\">CPCWiki<\/a> contributors who provided ROM dumps and notes on where to find character tables in the ROMs.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/web.archive.org\/web\/20190718154029\/http:\/\/www.cpcwiki.eu\/index.php\/Amstrad\/Schneider_Printer_Character_Sets\">Amstrad\/Schneider Printer Character Sets<\/a> \u2014 CPCWiki, Internet Archive copy. The site is currently under extreme mechanized scraper traffic and is almost impossible to access.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>A rendering of a 9-pin \u201cNear Letter Quality\u201d dot matrix font. Derived from the character ROM of an Amstrad DMP3160 printer. I started work on this in 2017, revisited it in late 2018, forgot about it for a few years and then finally completed it in a couple of days in July 2026. My focus [&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":[641,2409,1374,3383,3382,2958,3376,2123],"class_list":["post-18220","post","type-post","status-publish","format-standard","hentry","category-type","tag-amstrad","tag-dotmatrix","tag-font","tag-nearletterquality","tag-nlq","tag-otf","tag-type","tag-typography"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_shortlink":"https:\/\/wp.me\/pQNZZ-4JS","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/scruss.com\/blog\/wp-json\/wp\/v2\/posts\/18220","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=18220"}],"version-history":[{"count":1,"href":"https:\/\/scruss.com\/blog\/wp-json\/wp\/v2\/posts\/18220\/revisions"}],"predecessor-version":[{"id":18221,"href":"https:\/\/scruss.com\/blog\/wp-json\/wp\/v2\/posts\/18220\/revisions\/18221"}],"wp:attachment":[{"href":"https:\/\/scruss.com\/blog\/wp-json\/wp\/v2\/media?parent=18220"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/scruss.com\/blog\/wp-json\/wp\/v2\/categories?post=18220"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/scruss.com\/blog\/wp-json\/wp\/v2\/tags?post=18220"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}