{"id":313,"date":"2021-08-09T16:53:17","date_gmt":"2021-08-09T15:53:17","guid":{"rendered":"https:\/\/blog.inplico.uk\/?p=313"},"modified":"2023-06-15T23:42:42","modified_gmt":"2023-06-15T22:42:42","slug":"installing-a-zebra-bluetooth-printer","status":"publish","type":"post","link":"https:\/\/blog.inplico.uk\/?p=313","title":{"rendered":"Installing a zebra bluetooth printer"},"content":{"rendered":"<p>WARNING: This is a series of notes intended for internal purposes rather than a howto,\u00a0 If the information provided within is of benefit to you then great, but please read it within the context that it has been written.<\/p>\n<p>This is a how to for installing a zebra printer using bluetooth,\u00a0 theoretically it should work for any printer albeit you would probably want to use a printer driver rather than a the raw printer that you would use with zebra.<\/p>\n<p>First you need to install a couple of packages using your OS&#8217; package manager<\/p>\n<p>bluez, bluez-utils and bluez-cups<\/p>\n<p>Now you can scan for your bluetooth printer by running the command<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">bluetoothctl<\/pre>\n<p>and then issuing the command<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">scan on<\/pre>\n<p>This should display a list of devices that will hopefully include your printer.\u00a0 If it does not then check if the device is listed in the list of bluetooth devices in your gui, if it is then delete and it should show up in the scan.<\/p>\n<p>Record the mac address for later use.<\/p>\n<p>cups-bluez does not appear to be supported by the web user interface so you will have to install the printer using lpadmin.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">lpadmin -p QLN320BT -E -v bluetooth:\/\/AB12SD123241 -m raw\r\n<\/pre>\n<p>Where the &#8220;AB12SD123241&#8221; is the MAC address of the printer<\/p>\n<p>NOTE: -p = name of the print queue, -E is to enable the printer and -m is to set the model.\u00a0 In the case of the Zebra we just want to use a raw print queue.\u00a0 Raw print queues are apparently depreciated in CUPS, which is slowly but surely being destroyed by APPLE so hopefully it will be forked before too long.<\/p>\n<p>You should now be able to send ZPL directly to the printer using the lpr command.\u00a0 If you make up a file and then it is simply a matter of issuing<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">lpr -P QLN320BT .\/myzplfilename<\/pre>\n<p>at the command prompt and the printer should print the file.<\/p>\n<p>&nbsp;<\/p>\n<p><span style=\"text-decoration: underline;\"><strong>PRINTER LANGUAGE<\/strong><\/span><\/p>\n<p>Our applications all use ZPL (The Zebra Programming Language) to send files to the printer.\u00a0 In order to use ZPL we need to make sure that the printer is in ZPL mode.\u00a0 To do so open communications with the printer using Zebra setup utilities issue the following commands:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">! U1 setvar \"device.languages\" \"zpl\"\r\n! U1 setvar \"device.pnp_option\" \"zpl\"\r\n! U1 do \"device.reset\" \"\" &lt;CR&gt;<\/pre>\n<p>The printer will reboot and when it does it will be in ZPL mode.\u00a0 You may have to reinstall the printer driver to ensure that the version of the driver matches the language on the printer.<\/p>\n<p>To check what mode the printer is currently set to issue:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">! U1 getvar \"device.languages\" &lt;cr&gt;<\/pre>\n<p>&nbsp;<\/p>\n<p><span style=\"text-decoration: underline;\"><strong>MISSING SWISS FONT<\/strong><\/span><\/p>\n<p>If you are having issues with the built in zebra swiss font then you probably need to download it to the printer.\u00a0 To do so, rather than using the font downloader or following the somewhat dated instructions within the font folder open the zebra utility, select the printer, then navigate to the action tab and then send file.\u00a0 The file that you want to be sending is <strong>77849_002.ZSU<\/strong>; select it and hit send.\u00a0 That should be it.<\/p>\n<p>To check that the file is installed open communications and enter<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">! U1 do \"file.dir\" \"E:\" &lt;cr&gt;\r\n<\/pre>\n<p>NOTE:\u00a0 You need a new line character &lt;enter&gt; at the end of that line or it will not work.\u00a0 Hit send to printer and the font &#8220;<strong>TT0003M_.TTF<\/strong>&#8221; should be listed<\/p>\n<p>DELETING FILES<\/p>\n<p>If you want to delete a single file from E: (which is normally where custom files are) then you need to use the ^ID command thus:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">^XA^IDE:MYFILE.SUFFIX^XZ<\/pre>\n<p>Change &#8220;MYFILE.SUFFIX&#8221; for the name of the file that you want to delete (This can be a font or a template or anything).<\/p>\n<p>To delete everything you need to do something like this:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">^XA\r\n^IDe:*.CPF^FS\r\n^IDe:*.pcx^FS\r\n^IDe:*.FMT^FS\r\n^IDe:*.TTF^FS\r\n^HWE:\r\n^HWR:\r\n^HWA:\r\n^HWB:\r\n^XZ<\/pre>\n<p>NOTE: you should reinstall the Swiss Font using the instructions above if you do this.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>WARNING: This is a series of notes intended for internal purposes rather than a howto,\u00a0 If the information provided within is of benefit to you then great, but please read it within the context that it has been written. This is a how to for installing a zebra printer using bluetooth,\u00a0 theoretically it should work [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[11],"tags":[],"class_list":["post-313","post","type-post","status-publish","format-standard","hentry","category-zebra"],"_links":{"self":[{"href":"https:\/\/blog.inplico.uk\/index.php?rest_route=\/wp\/v2\/posts\/313","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.inplico.uk\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.inplico.uk\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.inplico.uk\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.inplico.uk\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=313"}],"version-history":[{"count":8,"href":"https:\/\/blog.inplico.uk\/index.php?rest_route=\/wp\/v2\/posts\/313\/revisions"}],"predecessor-version":[{"id":387,"href":"https:\/\/blog.inplico.uk\/index.php?rest_route=\/wp\/v2\/posts\/313\/revisions\/387"}],"wp:attachment":[{"href":"https:\/\/blog.inplico.uk\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=313"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.inplico.uk\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=313"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.inplico.uk\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=313"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}