[08 // Mobile Application]
Thermal Printer Service
- Kotlin
- Android SDK
- Print Framework
- PdfRenderer
- Bluetooth RFCOMM/SPP
- ESC/POS

[01]
Overview
Thermal Printer Service is a native Kotlin Android PrintService for selected 58 mm and 80 mm Bluetooth thermal-printer workflows.
It converts Android PDF print jobs into monochrome ESC/POS raster data and sends them over an RFCOMM/SPP connection.
[02]
My Contribution
- Implemented Android PrintService discovery and print-job handling in Kotlin.
- Built the PDF-to-bitmap and monochrome ESC/POS raster conversion pipeline.
- Added Bluetooth permissions, background execution, cancellation, chunked writes, and retry handling.
- Created reusable printer profiles, calibration controls, and error states for 58 mm and 80 mm configurations.
[03]
Key Technical Notes
- PdfRenderer rasterizes pages before 24-dot double-density ESC/POS encoding.
- Configured widths are 432 dots for 58 mm and 576 dots for 80 mm at 203 dpi.
- Bluetooth writes use chunks up to 1,024 bytes with four attempts at 0, 200, 500, and 1,000 ms delays.
- Printer profiles persist eight configuration attributes as JSON in SharedPreferences.
[04]
Visual Evidence



[04.V // VIDEO DEMO]Video Demonstration Record
Demonstration of the Android PrintService workflow output to a Bluetooth ESC/POS thermal printer.
[05]
Tech Stack
- Kotlin
- Android SDK
- Print Framework
- PdfRenderer
- Bluetooth RFCOMM/SPP
- ESC/POS
[06]
Status & Link
Completed Android service
Source repository or production deployment is private.