Chris Collins

Tools · graphics

Receipt printer

Print to-do lists, shopping lists, notes, job cards, daily agendas, recipes, Wi-Fi guest cards, pictures and free-form receipts on a cheap thermal printer — ESC/POS 58 and 80 mm printers over USB, serial or Bluetooth, and the little Bluetooth "cat printers" — with a dot-for-dot preview of the paper strip.

Added

How to use it

A cheap thermal receipt printer is a good desk toy: a to-do list you can tear off and take with you, a shopping list, a note on the fridge, a job ticket stuck to a repair. This page lays the receipt out at the printer’s own resolution and sends it straight from the browser. It’s the long-paper companion to the label maker.

How to use it

  1. Choose a template and fill it in. The preview is the strip of paper, one square per dot, as long as the receipt needs to be.

    • To-do list — a title, the date, and a box to tick for each line (start a line with `x ` to print it ticked).

    • Shopping list — boxes to tick, grouped under # Aisle headings.

    • Note or message — big type, to and from, with the date and time.

    • Job card — a shop ticket: the job number white on black, customer, phone, item, the work, parts with prices and dot leaders, the total, the due date, a QR code and a Code 128 barcode of the job.

    • Daily agenda — the day in big type, times down the left, tasks to tick, lines for notes.

    • Recipe card — ingredients, numbered steps, and a QR code back to the source.

    • Wi-Fi guest card — the network, the password if you want it printed, and a QR code that joins.

    • Print an image — choose, paste (⌘V / Ctrl+V anywhere on the page) or drop a picture. It’s scaled to the paper and dithered: Floyd–Steinberg for photos, Atkinson for a crisper, lighter look, or none for line art, with a threshold slider. Turn sideways prints a wide picture along the paper.

    • Blocks — build your own from headings, text, lists, two columns, rules, QR codes, barcodes, images, space and lines to write on; move them up and down. Edit as blocks on any other template copies it here as a starting point.

      2026-10-26 and {time} in any text print today’s date and the time.

  2. Choose the printer — 58 mm ESC/POS (384 dots), 80 mm (576 dots, or 512 on some), or a cat printer.

  3. Connect: Serial port for a USB-serial printer or a Bluetooth printer paired with the computer (it appears as a serial port), USB for a USB printer, Bluetooth for a Bluetooth LE printer.

  4. Print. Set Copies, the Cut and whether to cut after each copy, and Darkness.

How it prints

  • ESC/POS printers get the receipt as a raster image (GS v 0) in bands of up to 255 rows, then a feed and a cut (GS V). Darkness sends Epson’s print density command; Advanced can also send the heating time (ESC 7) many cheap printers use instead.

  • Text mode sends plain ESC/POS text in the printer’s own font, with a codepage (PC437, PC850, PC858 or Windows-1252) — fast for text-only receipts. Headings print double size, QR codes and barcodes are made by the printer, and images still go as dots.

  • Cat printers (GB01, GB02, GB03, MX05, MX06, MX10 and their clones) speak their own Bluetooth protocol — every command framed 51 78 … crc ff with a CRC-8, the rows sent one at a time between "lattice" start and end commands, and darkness set as the head’s energy. I worked it out from NaitLee’s Cat-Printer and the other open-source drivers people have written for them. The page picks the cat protocol by itself when it sees the printer’s AE30 service.

  • Bluetooth LE printers are written in chunks with a short pause between, because they have small buffers. The page looks for the services cheap printers use (18F0, FF00, E781…, FFE0, the Microchip UART service, AE30); add another UUID under Advanced. If a print comes out garbled, try smaller chunks or a longer pause.

⬇ PNG saves the receipt as an image. 🖨 Other printer… prints it through the browser’s dialog at the paper’s width, for a receipt printer with a system driver.

Browser support

Talking to the printer needs Chrome or Edge on a computer, or Chrome on Android: Web Serial, WebUSB and Web Bluetooth. Safari, Firefox and every browser on iPhone and iPad can still design receipts, download PNGs and use Other printer….

  • A USB printer that the operating system has already claimed with its own driver can’t be opened over WebUSB. On Windows, swapping its driver for WinUSB with Zadig fixes that; otherwise use the serial port (many USB printers are USB-serial), or Other printer….

  • A Bluetooth "classic" printer paired with the computer shows up as a serial port; a Bluetooth LE printer (including every cat printer) is reached with Bluetooth.

Privacy

Everything is drawn in this page and sent straight to the printer; nothing you type is uploaded. The page loads qrcode-generator from the jsDelivr CDN when a receipt has a QR code. Images you add stay in this browser. Share link carries the template and what’s in its fields, but never a Wi-Fi password or an image.

Runs entirely in your browser — network requests go only to the services named on this page.