ANNAS TRI WIDAGDO/PORTFOLIO · 2026
VOL. 01 // TECHNICAL ARCHIVE
■annastriwidagdo.me
SOFTWARE ENGINEER·FULL-STACK WEB DEVELOPER·MACHINE LEARNING ENGINEER
ENTRY 001OPENING TECHNICAL ARCHIVE00% · 01 / 01
Skip to content
■annastriwidagdo.me
  • 01Home
  • 02About
  • 03Projects●
  • 04Blog
  • 05Contact
LANGEN/ID
■annastriwidagdo.me
  • Software Engineer
  • Full-Stack Web Developer
  • Machine Learning Engineer

JAKARTA, INDONESIA · UTC+7

EMAILannastriw6@gmail.com↗ (opens in a new tab)LINKEDIN/in/annastriw↗ (opens in a new tab)GITHUB@annastriw↗ (opens in a new tab)CONTACTOpen Contact→

© 2026 Annas Tri Widagdo. Drafted in grids, shipped in code.

←Back to Projects[INDEX // 08] / EN / PROJECTS / thermal-printer-service
08
●[08 // Mobile Application]

Thermal Printer Service

  • Kotlin
  • Android SDK
  • Print Framework
  • PdfRenderer
  • Bluetooth RFCOMM/SPP
  • ESC/POS
Role
Android Developer
Verified status
Completed Android service
Thermal Printer Service Android application identity
🔍 Inspect Figure
[COVER]Thermal Printer Service Android application identity
[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

  • 01Implemented Android PrintService discovery and print-job handling in Kotlin.
  • 02Built the PDF-to-bitmap and monochrome ESC/POS raster conversion pipeline.
  • 03Added Bluetooth permissions, background execution, cancellation, chunked writes, and retry handling.
  • 04Created reusable printer profiles, calibration controls, and error states for 58 mm and 80 mm configurations.
[03]

Key Technical Notes

  • 01PdfRenderer rasterizes pages before 24-dot double-density ESC/POS encoding.
  • 02Configured widths are 432 dots for 58 mm and 576 dots for 80 mm at 203 dpi.
  • 03Bluetooth writes use chunks up to 1,024 bytes with four attempts at 0, 200, 500, and 1,000 ms delays.
  • 04Printer profiles persist eight configuration attributes as JSON in SharedPreferences.
[04]

Visual Evidence

Click to inspect in full resolution
Thermal Printer Service mobile interface
FIG.01Thermal Printer Service main configuration interface on Android.
Thermal printer profile configuration
FIG.02Documented printer-profile configuration and Bluetooth setup flow.
Thermal Printer Service calibration interface
FIG.03Mobile print calibration testing and hardware service-state evidence.
[04.V // VIDEO DEMO]Video Demonstration Record
Your browser does not support HTML5 video playback.

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.
← Previous projectSpeech-to-Text System
Back to Projects
Next project →Footy Standings