{"id":17805,"date":"2025-04-09T00:46:43","date_gmt":"2025-04-09T04:46:43","guid":{"rendered":"https:\/\/scruss.com\/blog\/?p=17805"},"modified":"2025-04-09T00:46:43","modified_gmt":"2025-04-09T04:46:43","slug":"plotter-stuff-on-that-brother-printer","status":"publish","type":"post","link":"https:\/\/scruss.com\/blog\/2025\/04\/09\/plotter-stuff-on-that-brother-printer\/","title":{"rendered":"plotter stuff on that Brother printer"},"content":{"rendered":"\n<p>That Brother laser printer you bought can also pretend it&#8217;s a plotter. One of the requirements embedded in a PCL-compatible printer is an implementation of HP-GL\/2. This is a slightly modified version of the page description language used by HP&#8217;s pen plotters. With care, you can make proofs on a laser printer.<\/p>\n\n\n\n<p>Take, for example, this figure drawn in HP-GL:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"439\" height=\"454\" src=\"https:\/\/scruss.com\/wordpress\/wp-content\/uploads\/2025\/04\/hpgl-rotatey.png\" alt=\"[decorative] a spiralling figure made of scaled and rotated equilateral triangles\" class=\"wp-image-17807\" srcset=\"https:\/\/scruss.com\/wordpress\/wp-content\/uploads\/2025\/04\/hpgl-rotatey.png 439w, https:\/\/scruss.com\/wordpress\/wp-content\/uploads\/2025\/04\/hpgl-rotatey-309x320.png 309w, https:\/\/scruss.com\/wordpress\/wp-content\/uploads\/2025\/04\/hpgl-rotatey-155x160.png 155w\" sizes=\"auto, (max-width: 439px) 100vw, 439px\" \/><figcaption class=\"wp-element-caption\">just some plotter stuff \u2026<\/figcaption><\/figure>\n\n\n\n<p>It&#8217;s made up of familiar commands:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">IN;SP1;PU4318,5988;<br>PD3971,5388,4664,5388,4318,5988;<br>PU4279,6026;<br>PD3957,5335,4716,5402,4279,6026;<br> \u2026<\/pre>\n\n\n\n<p>But add some magic header bytes (0x1b, 0x45, 0x1b, 0x25, 0x30, 0x42) and some trailer bytes (0x1b, 0x25, 0x30, 0x41, 0x1b, 0x45), and your printer understands it&#8217;s a PCL file. <\/p>\n\n\n\n<p>The file, complete with header and trailer, is here: <\/p>\n\n\n\n<div class=\"wp-block-file\"><a id=\"wp-block-file--media-53179e94-77fd-4822-ae15-639e0ae1c8f6\" href=\"https:\/\/scruss.com\/wordpress\/wp-content\/uploads\/2025\/04\/hpgl-rotatey.zip\">hpgl-rotatey<\/a><a href=\"https:\/\/scruss.com\/wordpress\/wp-content\/uploads\/2025\/04\/hpgl-rotatey.zip\" class=\"wp-block-file__button wp-element-button\" download aria-describedby=\"wp-block-file--media-53179e94-77fd-4822-ae15-639e0ae1c8f6\">Download<\/a><\/div>\n\n\n\n<p>You can print it like this:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">lp -o raw hpgl-rotatey.hpgl<\/pre>\n\n\n\n<p>which produces a page like this:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"787\" height=\"1024\" src=\"https:\/\/scruss.com\/wordpress\/wp-content\/uploads\/2025\/04\/20250408_214147_BRWD89C6730425A_000572a-787x1024.jpg\" alt=\"[decorative] a spiralling figure made of scaled and rotated equilateral triangles\" class=\"wp-image-17806\" srcset=\"https:\/\/scruss.com\/wordpress\/wp-content\/uploads\/2025\/04\/20250408_214147_BRWD89C6730425A_000572a-787x1024.jpg 787w, https:\/\/scruss.com\/wordpress\/wp-content\/uploads\/2025\/04\/20250408_214147_BRWD89C6730425A_000572a-246x320.jpg 246w, https:\/\/scruss.com\/wordpress\/wp-content\/uploads\/2025\/04\/20250408_214147_BRWD89C6730425A_000572a-123x160.jpg 123w, https:\/\/scruss.com\/wordpress\/wp-content\/uploads\/2025\/04\/20250408_214147_BRWD89C6730425A_000572a-768x999.jpg 768w, https:\/\/scruss.com\/wordpress\/wp-content\/uploads\/2025\/04\/20250408_214147_BRWD89C6730425A_000572a-1181x1536.jpg 1181w, https:\/\/scruss.com\/wordpress\/wp-content\/uploads\/2025\/04\/20250408_214147_BRWD89C6730425A_000572a-1575x2048.jpg 1575w, https:\/\/scruss.com\/wordpress\/wp-content\/uploads\/2025\/04\/20250408_214147_BRWD89C6730425A_000572a-scaled.jpg 1969w\" sizes=\"auto, (max-width: 787px) 100vw, 787px\" \/><figcaption class=\"wp-element-caption\">full page scan of that HP-GL file as printed on a Brother MFC-L2750DW<\/figcaption><\/figure>\n\n\n\n<p>HP-GL\/2, on mono lasers at least, has some differences to the version used on plotters. The biggest difference is that there&#8217;s just one pen. You can change the pattern and line attributes of this pen, but you don&#8217;t get to change to multiple pens with different colours.<\/p>\n\n\n\n<p>The manual for Brother&#8217;s HP-GL implementation lives here: <a href=\"https:\/\/www.brother.eu\/-\/media\/product-downloads\/devices\/printers\/dcp\/dcp8020\/de\/guide_hpgl_2.pdf\">Chapter 4: HP-GL\/2 Graphics Language<\/a>. Happy plotting!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>That Brother laser printer you bought can also pretend it&#8217;s a plotter. One of the requirements embedded in a PCL-compatible printer is an implementation of HP-GL\/2. This is a slightly modified version of the page description language used by HP&#8217;s pen plotters. With care, you can make proofs on a laser printer. Take, for example, [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"That Brother laser printer you bought can also pretend it's a plotter\n\n#plotter #printer #hpgl","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","enabled":false},"version":2}},"categories":[7],"tags":[3341,2788,2781,2789,922],"class_list":["post-17805","post","type-post","status-publish","format-standard","hentry","category-computers-suck","tag-brother","tag-hpgl","tag-laser","tag-plotter","tag-printer"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_shortlink":"https:\/\/wp.me\/pQNZZ-4Db","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/scruss.com\/blog\/wp-json\/wp\/v2\/posts\/17805","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=17805"}],"version-history":[{"count":2,"href":"https:\/\/scruss.com\/blog\/wp-json\/wp\/v2\/posts\/17805\/revisions"}],"predecessor-version":[{"id":17810,"href":"https:\/\/scruss.com\/blog\/wp-json\/wp\/v2\/posts\/17805\/revisions\/17810"}],"wp:attachment":[{"href":"https:\/\/scruss.com\/blog\/wp-json\/wp\/v2\/media?parent=17805"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/scruss.com\/blog\/wp-json\/wp\/v2\/categories?post=17805"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/scruss.com\/blog\/wp-json\/wp\/v2\/tags?post=17805"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}