Thermal Printer Service
A native Android print service that connects browser-based workflows to Bluetooth thermal printers and converts Android print jobs into monochrome output for configured ESC/POS devices.
Project Gallery

Demonstration of the Android PrintService workflow output to a Bluetooth ESC/POS thermal printer.
Project Overview
I developed Thermal Printer Service as a companion application for UKG System, enabling users to print from Chrome through Android’s standard printing workflow to a configured Bluetooth thermal printer.
The application converts print documents into monochrome ESC/POS output, manages background print jobs, and supports persistent profiles, calibration, retry, and error handling for 58 mm and 80 mm printers.
My Contribution
- Built a custom Android PrintService that receives print jobs through Android’s standard printing workflow.
- Implemented the PDF-to-bitmap and monochrome ESC/POS processing pipeline for 58 mm and 80 mm printers.
- Managed background job processing, chunked Bluetooth transfer, retry, cancellation, and error states.
- Developed persistent printer profiles and calibration controls for different printer configurations.
This project strengthened my experience in connecting web workflows with native Android services and printing hardware.
- Kotlin
- Android SDK
- Android Print Framework
- Bluetooth
- ESC/POS
- Gradle
System Scope
- Printing initiated from the website in Chrome
- Android Print Framework
- Custom PrintService
- Sequential background print-job processing
- Temporary PDF and PdfRenderer
- Bitmap scaling and alignment
- Monochrome ESC/POS conversion
- 58 mm and 80 mm output configurations
- Bluetooth RFCOMM/SPP connection
- Chunked data transfer with retry
- Persistent profiles using SharedPreferences and JSON
- Calibration and error handling




