Show HN: Thermal Receipt Printers – Markdown and Web UI

github.com

119 points

howlett

a month ago


50 comments

Spunkie a month ago

I've not much to say on the thermal printer part of this but the extensions they did to markdown are great. They had me double taking for a few seconds thinking they might be real markdown because they make so much sense.

    [align=center]    Center-align the following text (also left, right)
    [qr=https://...]  Generate and print a QR code
Deprecating align in html was a mistake.
  • xp84 a month ago

    It’s funny, after all the work that was done to decouple content from presentation, 90% of the markup I’ve seen in every codebase this decade is using Styled Components anyway, which commingles them in the source code anyway.

    • zigzag312 a month ago

      I think this further proves that the hypothesis of decoupling content from presentation is flawed. The question is how many more data points do we need before we admit that?

      • adolph a month ago
        2 more

        Yes, iirc the concept wasn't to decouple content and presentation but to decouple semantics from presentation in order to re-present content in different media in that medium's native representation of a particular semantic. However, many things are not much different in different media, a headline is a headline. And other things like "emphasis" can have cultural differences even within the same media, like being bold, italicized or even double-quotes.

        • xp84 a month ago

          I suppose to a limited extent, that being “articles” in the typical sense, the strategy might be said to have some modicum of success. I’m sure many CMSs store articles as mostly “plain” HTML and regurgitate the same, directly into a part of the final HTML document, with actual normal CSS rules styling that.

    • bigbuppo a month ago

      Oh man... the popularity of the tailwind css framework. I have big-o Opinions on that, but screw it, if it helps people get things done quickly, then I'm all for it. The semantic xml/html dweebs set us back a solid decade.

      • RadiozRadioz a month ago

        Indeed, I can't think of anybody who prefers <button> to <div><div><div><div class="button xl red-border top-pad-2x rounded-corner-in-bottom-left-but-not-other-corners" onclick="javascript:...">

  • sheept a month ago

    Since align is only deprecated and not removed, and Markdown is a superset of HTML (at least for CommonMark and GFM), it would be valid markdown to just use <div align=center> to center text (not like there's such a thing as invalid Markdown)

bigbuppo a month ago

I actually use my printers thank you very much. Even bought one of those bank teller slip printer things and a few boxes check-sized slips. I use them for time tracking and todo list.

I didn't go totally crazy, though, and stopped before getting too deep into "...and then OCR them using the check scanner" because I remembered I was already keeping track of start/stop times in a database when printing the slips.

  • baby_souffle a month ago

    Can you share more about this workflow? I have only recently started to appreciate how my special blend of adhd can work best with there's a physical component to actually _seeing_ the work to be done vs stashed away in a jira, exclusively.

    • bigbuppo a month ago

      Also... the way I work with it is pretty simple... just three perl scripts... tsta, tpau, and tend. They take a single argument... just a single string I call a tag. Usually something like a jira ticket id, but it could be something more descriptive. Keeps track of it in a sqlite database. The end part moves the record to the archive table, prefixing the start date and time to the tag so I can reuse tags for routine work tasks and that it's also more obvious when I run a report.

      Fun fact... the original implementation was in OpenQM, that is, a PICK-style system.

    • bigbuppo a month ago

      The TL;DR is that it's a physical kanban board mixed with a time clock.

      I place them on a ticket rack hanging on the wall above my monitor. It like the ones you see at restaurants... extruded aluminum... filled with marbles... slot on the bottom. If my board is full, I can't (or at least shouldn't) accept more work. It also is an immediate reminder of what needs to be done. The physical process of marking a ticket done and putting it in the finished pile helps to satisfy that need to have a visible sign that work has been done.

  • helterskelter a month ago

    Sorry, could you link me to the printer you're using? Does it work with CUPS? I like this idea.

    (Thank you)

    • bigbuppo a month ago

      The main slip printers I use are the Addmaster 7100 and 7200... they're the same printer but use different cartridges. You can find them cheap on ebay, or at least you could. They speak their own little dialect that as far as I know isn't supported by cups as shipped. Even then, cups wouldn't be a good choice since there's a little more back-and-forth than just blasting out data to the printer. Same goes for other printers that support ESC/POS... it's not entirely the same as ESC/P and when you get into slip/validation printing you have to do a little more work on the software side.

frizzle-chan a month ago

This rules! I've been working on a similar project where friends DM a discord bot and it prints out a "fax" on my thermal printer.

One thing I solved differently: I rendered the fax as an image using PIL and then I just print the image. That way I can support arbitrary Unicode and can lay things out independently of what my printer is capable of.

Example rendered fax: https://github.com/frizzle-chan/fax.frizzle.lol/blob/main/fa...

andruby a month ago

This comes so timely. I bought the receipt printer last week and a large metal sheet to hold them magnetically to the wall for a real life todo kanban board

thomascountz a month ago

Obligatory "be careful with that poison paper" warning![1]

[1]: https://hn.algolia.com/?dateRange=all&page=0&prefix=false&qu...

  • fy20 a month ago

    An alternative to consider are dot matrix / impact printers.

    They are used in kitchens, as heat sensitive paper doesn't work well there. It's just plain paper and an ink ribbon.

    Same underlying protocol as thermal printers, so the code is mostly plug and play.

    They often can print in two colours (red and black). And sound like the 1980s.

    • user_7832 a month ago

      I... thought dot matrix printers were some of the worst for releasing particulate matter into the air? Especially ultra fine particles?

      • thomascountz a month ago
        2 more

        I can't find any information regarding this.

        • user_7832 a month ago

          Thanks, you're right, a quick google shows nothing... I could've sworn reading about how they're very bad... perhaps I was misremembering with standard printers?

  • tamimio a month ago

    I use Niimbot M2_H which uses thermal transfer technology, and it’s more durable and lasts longer than thermal ones, BPA free as well.

speakbits a month ago

Called me out with that first sentence

  • napolux a month ago

    Same. Plus I have an USB barcode scanner somewhere :D

owobeid a month ago

I had started working on something similar a few months back but as a collection of CLI utilities.

The first was a todo list printer where the todos are written in a YAML file. It includes fields for the name of the list and the date.

I also started working on a Sudoku printer (which I think is only possible on 80mm paper). But I completely forgot about the entire thing after coming back from vacation.

You've inspired be to get back to working on it :D

As an aside, are there any good recommendations for a wifi/bluetooth printer using 80mm paper that doesn't break the bank? I initially bought the Munbyn ITPP098P but it being USB only is a bit unergonomic.

  • wut42 a month ago

    Already replied the same in another comment, but I recently got the "YHD-8390" on Aliexpress for around 100$ - has wifi, usb, ethernet, and works pretty well.

2muchcoffeeman a month ago

What’s a cheap but ok thermal printer? The brand mentioned in this repo?

I wanted to setup https://www.colonnes.com but their recommendations were quite expensive.

  • andruby a month ago

    I bought a Zapos ZA-E200L in South-Africa for $65 [0]

    It was configured with a fixed IP/subnet/gateway and no DHCP, which took an hour or two to debug and reconfigure. Been a dream since then: prints really fast and cuts properly. OP's project works well to print todo's.

    [0] https://alcell.co.za/product/zapos-za-e200l-thermal-receipt-...

  • wut42 a month ago

    I recently got the YHD-8390 on Aliexpress for around 100$, works pretty well. Connects by Ethernet, USB and Wifi. Having plenty of fun with it.

  • VTimofeenko a month ago

    I got an Epson TM-T88IIIP for about 40 bucks used. The whole line seems to have decent Linux drivers

  • micw a month ago

    For labels I use Phomomo. Quite cheap. I wrote some python code to drive it.

  • derwiki a month ago

    I like my Rongta POS Printer, under $100

dematz a month ago

these things seem like too much fun, someone made a gleam printer library (https://hexdocs.pm/escpos/) and suddenly everyone on the discord is buying a printer...

plussed_reader a month ago

I troubleshoot thermal printers for work and the error is rarely in the hardware. I have no issue with this work request; TPs are deterministic and predictable.

anthonySs a month ago

would be cool if it supported basic html/css

  • Instantnoodl a month ago

    That's the approach I used for my thermal printer based project. Render HTML/CSS to B/W Image and then print it on the thermal printer.

    https://sales-and-dungeons.app/

    • bean469 a month ago

      Incredible project! Thanks for sharing

  • wut42 a month ago

    An easy way to do this, which I use to print recipes with my TP, is to render the page as an image. I use dom-to-image for that.

  • JellyBeanThief a month ago

    I can print webpages straight to my Epson TM-T20IV. My web browser just sends it to CUPS.

    • wut42 a month ago

      thermal printers are centuries backwards from anything like CUPS.

atonse a month ago

Can we not print full pdf type stuff with thermal printers?

I just bought one a couple weeks ago actually.

  • sayamqazi a month ago

    its slower than text mode. basically you can print anything as long as you can convert it to monochrome bitmap before sending. But the thermal printers have anotehr mode which prints extremely fast if your data is textual with rudimentary formatting like order slips.

    • 1e1a a month ago

      I believe the speed also depends on how many activated dots there are per line in the image, as thermal print heads often have a limit to the number of elements that can be activated at once.