Tentang

Thermal printer controller langsung dari browser โ€” tanpa aplikasi tambahan. Mendukung Bluetooth BLE, USB Serial, dan Bridge (Bluetooth Classic via Android relay).

PWA Offline-ready Web Bluetooth Web Serial ESC/POS

Fitur

TeksBold, underline, alignment, font scale
GambarUpload + konversi B&W, brightness/contrast
QR CodeGenerate & print, ukuran & error correction
BarcodeCode 128, EAN, HRI label, tinggi custom
TabelMulti-kolom, header & border opsional
GabunganBlock editor โ€” mix semua tipe konten
TemplateReceipt / struk โ€” item, diskon, pajak
Riwayat10 print terakhir di localStorage

Koneksi

Bluetooth BLEChrome Android โ€” langsung ke printer
USB / SerialChrome Mac/Win via Web Serial API
Bridge ยท BT ClassicRelay via Android bridge app

File

printme/
โ”œโ”€โ”€ index.html โ€” main app
โ”œโ”€โ”€ style.css โ€” impeccable UI (992 baris)
โ”œโ”€โ”€ app.js โ€” main controller (1108 baris)
โ”œโ”€โ”€ bluetooth.js โ€” Web Bluetooth BLE
โ”œโ”€โ”€ webserial.js โ€” Web Serial (USB)
โ”œโ”€โ”€ bridge.js โ€” BT Classic bridge
โ”œโ”€โ”€ escpos.js โ€” ESC/POS command builder
โ”œโ”€โ”€ qr-gen.js โ€” QR code generator
โ”œโ”€โ”€ history.js โ€” print history (localStorage)
โ”œโ”€โ”€ sw.js โ€” pass-through Service Worker
โ”œโ”€โ”€ manifest.json โ€” PWA manifest
โ”œโ”€โ”€ reset.html โ€” cache reset tool
โ””โ”€โ”€ readme/ โ€” halaman ini

Server: /opt/caddy/sites/ican/printme/ ยท Caddy static file server

Cache & Service Worker

SW (sw.js) adalah pass-through โ€” tidak ada caching. Semua request langsung ke network.

Saat SW diupdate: install โ†’ skipWaiting() โ†’ activate โ†’ clear cache โ†’ clients.claim() โ†’ page auto-reload via controllerchange event.

UI broken (CSS tidak load)? Buka /printme/reset.html โ€” unregister SW lama + clear semua cache, lalu kembali ke app.