Experimenting with Thermal Printing: My Setup, Mishaps, and Tips
After some trial and error, I set up my thermal printer using Node-RED, ditching CUPS for easier control. Using Node.js packages like readability and wkhtmltoimage, I convert articles into clean PNGs, making print layout adjustments simpler and manageable through a web UI—no SSH needed!

A few weeks ago, I shared some of the fun I had setting up and experimenting with my new thermal printer. Since then, a few people have shown interest in my setup, so I thought I’d write a follow-up post about how things are going and what I’m using it for now.
It’s fair to say that, since last time, there have been a few mishaps here and there. My Mastodon post (below) is a good example of what I’ve been experiencing over the past week as I’ve been "experimenting."
Yeah... I find it's always best to double-check your code before running.
Since my last post, I’ve managed to get everything up and running using Node-RED. Why not just use Python scripts? Well, Node-RED provides a convenient drag-and-drop editor for scheduling tasks in the form of "flows," making it easy to connect to APIs and run print jobs. This setup allowed me to build and scale complex print jobs without having to SSH into my Pi every time I need to debug something. Thanks to Node-RED, I can manage everything through a nice web UI.
I also ended up ditching the CUPS print driver, as I couldn’t quite get the page settings right and had issues with it not printing to the correct scale. Instead, I built a flow for printing webpages (such as articles) by using a Node.js package from Mozilla called readability
. This package takes a URL from a simple web form I designed and turns the webpage into a reader-friendly document (similar to the "Reader View" feature) as a simple HTML file.
Also, rather than printing text directly to the printer, I used a tool called wkhtmltoimage
, which renders HTML documents as PNG files that I can then print. I found that this approach makes it easier to improve the layout and presentation of the print.
Here are some examples of what I've used my thermal printer for.




I can use my thermal printer for all sorts of jobs. A few examples of these include a daily report, web articles and recipes.