A phone and a small thermal printer are now a complete billing counter. They cost a fraction of a POS terminal, fit in a pocket, and work in a shop, a food stall or on a delivery run. The tricky part is not the hardware. It is getting the receipt from your app or website onto that printer.
This guide covers what to buy, how to connect it, how to print from Chrome and web POS pages, how to let a laptop or iPhone use the same printer, and how to fix the problems everyone runs into.
The short answer
To print receipts from an Android phone to a thermal printer:
- Use an ESC/POS thermal printer with 58 mm or 80 mm paper, connected by Bluetooth, USB (OTG) or Wi-Fi.
- Install a printing app that adds an Android print service, such as RollCast, so the printer appears in Chrome's and other apps' print menu.
- Add the printer in the app, pick the paper width, and print a test and calibration page.
- Print from Chrome with Share > Print, choose the printer once, and every later receipt takes one tap.
Step 1: Choose the right thermal printer
Almost every small receipt printer sold in India speaks ESC/POS, the command language introduced by Epson. Check three things before buying:
| What | Choose |
|---|---|
| Paper width | 58 mm for small bills, tokens and portable use; 80 mm for restaurants and longer bills |
| Connection | Bluetooth for portability, USB for a fixed counter, Wi-Fi/Ethernet when several staff share one printer |
| Cutter | An auto cutter saves tearing on busy counters (common on 80 mm models) |
Most printers use a 203 dpi head: a 58 mm printer prints 384 dots across, and an 80 mm printer 576. Pick 300 dpi only if the printer's label says so.
Step 2: Connect the printer to your phone
Bluetooth (most common)
Pair the printer first in Android Settings > Bluetooth, usually with PIN 0000 or 1234. Then add it in your printing app. Android asks for the Nearby devices permission: allow it, or the app cannot reach the printer.
Some newer portable printers use Bluetooth Low Energy (BLE) instead of Bluetooth Classic. A good printing app supports both.
USB
Plug the printer into the phone with a USB OTG cable or adapter. There is no pairing, and the connection is steady, which suits a fixed counter.
Wi-Fi or Ethernet
Network printers listen on port 9100. Give the printer a fixed IP address in your router, then add it by that address.
Step 3: Print from Chrome and any app
Android only lists printers that have a print service. Most small thermal printers have none, which is why Chrome shows "Save as PDF" and nothing else.
A printing app like RollCast adds that service. Then:
- Turn on the app's print service (in RollCast: Setup > Enable print service).
- Turn off other thermal print services, or Chrome may pick the wrong one.
- In Chrome, tap Share > Print, choose your printer at the top, and print.
Chrome remembers the printer, so the next receipt is one tap. The same works in any app with a Print option, and you can share photos, PDFs and text straight to the printing app.
Step 4: Print from a website or web POS with one tap
Web billing and POS pages can skip the print dialog entirely. With RollCast, a page sends a rollcast:// link from a button tap, carrying the receipt as raw ESC/POS bytes, plain text or HTML:
rollcast://print?type=html&data=<base64>&printer=<id>
The user turns on Allow web prints once, and from then on the Print bill button prints immediately. Developers can find the full details in the web integration guide.
Step 5: Share the printer with a laptop or iPhone
A Bluetooth printer pairs with one phone. The phone can then share it on the shop's Wi-Fi:
- iPhone and iPad find it as an AirPrint printer and print with no app or driver.
- Windows, macOS and Linux add it as an IPP printer with the built-in driver.
- Till software that already produces ESC/POS can print raw to port 9100.
Approve each new device the first time it prints. One caution: only the paired connection is encrypted. The browser page, IPP and port 9100 are not, so on a public Wi-Fi anyone on the network could read what you print. See Share this printer on Wi-Fi for step-by-step instructions for each system.
Printing in Telugu, Hindi and other Indian languages
Cheap printers only carry Latin characters, so Telugu, Hindi or Tamil text comes out as ? or boxes. The fix is to print text as an image: the phone renders the text with its own fonts and sends a picture, which every printer can print. In RollCast it is under Text & language > Print text as image.
Common problems and fixes
| Problem | Fix |
|---|---|
| Printer missing from Chrome's print menu | Enable the printing app's print service, and turn off other thermal print services |
| Prints only after you open the app | The phone is freezing the app in the background. Set its battery usage to Unrestricted (common on Samsung) |
| Right side cut off, or text wraps early | Adjust the print area (384 dots for 58 mm, 576 for 80 mm at 203 dpi) and check with a ruler test |
| End of long receipts goes missing | Choose a slower transfer speed; cheap Bluetooth printers have small buffers |
| Faint or grey print | Use Dark print darkness and fresh thermal paper, shiny side facing the head |
| Pictures print as garbage | Try another image method (GS v 0 suits most printers; ESC * helps older ones) |
| Last line cut through by the cutter | Increase the lines to feed before cut |
| Paper ran out mid-job | A good app waits and resumes on its own once paper is loaded |
Keep receipts without a printer
No printer at hand? A virtual printer saves each job as a PDF and an image instead. You can send it to the customer on WhatsApp now, and print it later on a real printer.
Frequently asked questions
Can I print from an Android phone to a Bluetooth thermal printer without an app?
Not from Chrome or most apps. Android needs a print service for the printer, and small thermal printers do not include one. A printing app adds it.
Do 58 mm and 80 mm printers need different apps?
No. The same app drives both; you set the paper width when you add the printer.
Can an iPhone print to a Bluetooth thermal printer?
Not directly in most cases, but it can print through an Android phone that shares the printer as an AirPrint printer on the same Wi-Fi.
What is ESC/POS?
The command language most receipt printers understand. It controls text, images, paper feed and cutting.
RollCast is our free Android app that does all of this: printing from Chrome, any app, the share sheet and websites to 58 mm and 80 mm ESC/POS printers over Bluetooth, BLE, USB or Wi-Fi, plus sharing the printer with laptops and iPhones. It has no account and nothing leaves your phone. It is in testing ahead of its Google Play release — message us to try it.