Open source · MIT license · Android 12+
58mm Bluetooth thermal printing from Android Chrome & PDF
An Android Print Service for compatible Bluetooth ESC/POS receipt printers. Use the normal Print menu in Chrome, PDF readers and web POS/billing apps, with actual receipt-width paper.
Preview: one generic 58mm dual-mode printer has been physically tested with a Lenovo Tab TB311FU on Android 16. Universal printer compatibility is not claimed. Android BLE printing is not yet hardware-verified.
Why a Bluetooth printer works in an app but not Chrome
Pairing a printer does not register it with Android's print framework. This helper adds a 58mm Receipt Printer destination to the system print picker. It requires no changes to websites that already use that picker.
Print a receipt in six steps
- Install the APK from this project's GitHub Releases.
- Power on the printer nearby and release other device connections. Pair it in Android settings for Classic Bluetooth.
- Open the helper, allow Nearby devices, scan and select the printer.
- Tap Enable print service and enable 58mm Receipt Printer.
- Print the size-test receipt first.
- In Chrome or your billing app, choose the receipt layout and print to 58mm Receipt Printer → 58 × 500 mm receipt.
Fix tiny receipts and clipped prices
An A4 or 180mm-wide page can shrink a narrow receipt to unreadable text when fitted onto a roll. This service exposes 58 × 500 mm and 58 × 200 mm media, renders at approximately 203 dpi and fits overflowing content within 384 printable dots. Blank page edges are trimmed; internal layout is preserved.
Compatibility
Designed for 58mm ESC/POS raster printers. Paired Classic SPP is tried first on bonded Classic/dual-mode devices. BLE fallback expects service 18F0 and writable characteristic 2AF1. The setup screen currently uses BLE scanning and lists devices named PRINTER or advertising that service; Classic-only and differently named devices may need compatibility work.
This is not an 80mm, ZPL/TSPL label or A4 driver. It does not reflow A4 invoices into receipts. No paper-out sensor or automatic cutter control is implemented.
Privacy
The app requests Bluetooth permissions only. No internet permission, cloud account, ads or analytics. Printer selection and temporary PDFs stay in the app's private storage. Android's spooler and the source app have their own data behavior. Never upload real receipts or device identifiers to an issue.
Frequently asked questions
Why does Chrome only show Save as PDF?
Enable the helper's Android print service and select a printer in its setup screen, then reopen Chrome's print preview.
Can I use it with a web POS or billing website?
Yes, when that application opens Android's standard print menu and creates a receipt-sized document. Websites that use a different proprietary printing mechanism require separate integration.
Does every 58mm Bluetooth printer work?
No. Firmware and command languages differ. A matching brand or case is not proof of compatibility. Start with one size-test print and report synthetic, redacted findings.
Does it need a Mac or USB cable?
No. After setup, printing goes directly from the Android device to the printer over Bluetooth.
What if a print is interrupted?
Check the paper before manually retrying. Some data or copies may already have printed; physical output cannot be guaranteed exactly once.