Hai un POS software che gira su browser e una stampante termica Bluetooth da 40 €. Vorresti stampare scontrini direttamente dal browser senza driver, senza app intermedie, senza middleware. Si può fare grazie alla Web Bluetooth API, una tecnologia matura supportata dai principali browser desktop e Android. Vediamo come funziona, quali stampanti sono compatibili e i limiti.
Cos'è la Web Bluetooth API
La Web Bluetooth API è uno standard W3C che permette ai browser di comunicare direttamente con dispositivi Bluetooth Low Energy (BLE). Una pagina web HTTPS può:
- Cercare dispositivi BLE nelle vicinanze.
- Connettersi (con autorizzazione esplicita dell'utente).
- Inviare e ricevere dati.
Per le stampanti termiche ESC/POS, significa inviare i comandi di stampa direttamente dal browser senza passare per app native, driver del sistema operativo, o server intermedi.
Cos'è il protocollo ESC/POS
ESC/POS è il protocollo di stampa sviluppato originariamente da Epson per le proprie stampanti termiche, diventato lo standard de facto per il settore. Tutte le stampanti termiche cinesi e non lo implementano.
I comandi sono brevi sequenze di byte:
ESC @(0x1B 0x40) — inizializza stampante.ESC E 1— bold ON.ESC a 1— centra testo.GS V 0— taglio carta.
Più dati da stampare = sequenze di comandi + testo seguite da newline.
I browser che supportano Web Bluetooth
| Browser / OS | Supporto |
|---|---|
| Chrome desktop (Windows/Mac/Linux) | ✅ Pieno |
| Edge desktop | ✅ Pieno |
| Chrome Android | ✅ Pieno |
| Samsung Internet (Android) | ✅ Pieno |
| Opera | ✅ Pieno |
| Firefox | ❌ NON supportato |
| Safari macOS | ❌ NON supportato |
| Safari iOS / iPad | ❌ NON supportato |
| Chrome iOS | ❌ (limite Apple, non Chrome) |
Conseguenza pratica: per usare la stampa Bluetooth da browser, devi essere su Android o desktop con Chrome/Edge. Su iPhone/iPad non funziona, devi ripiegare su PDF.
Le stampanti compatibili
Cerca stampanti termiche con questi requisiti:
- Bluetooth Low Energy (BLE), NON Bluetooth Classic.
- Supporto comandi ESC/POS.
- Larghezza carta 58mm o 80mm.
Brand affidabili
| Brand | Modelli noti | Prezzo medio |
|---|---|---|
| Xprinter | XP-T58L, XP-N160II | 35-65 € |
| Munbyn | ITPP047, ITPP068 | 45-80 € |
| Goojprt | PT-210, PT-50 | 30-55 € |
| Rongta | RPP-300 | 50-90 € |
| SUNMI | V2 / V2 PRO | 300-500 € (POS all-in-one) |
| Star Micronics | SM-T300i | 200-350 € |
Le stampanti cinesi (Xprinter, Goojprt) sono economiche ma con qualità variabile. Per uso intensivo professionale, considera Star Micronics o SUNMI.
Come funziona la stampa, passo per passo
Step 1: HTTPS obbligatorio
Web Bluetooth API funziona solo su HTTPS. Il software gestionale deve essere accessibile via certificato SSL. Localhost è ammesso per sviluppo.
Step 2: richiesta dispositivo
L'utente clicca "Connetti stampante" → il browser apre dialog con elenco dispositivi BLE nelle vicinanze. L'utente sceglie la sua stampante (autorizzazione esplicita richiesta da W3C).
Step 3: connessione GATT
Il browser si connette via GATT (Generic Attribute Profile). Identifica il Service UUID della stampante (caratteristica Bluetooth dedicata alla stampa) e la Characteristic UUID per la scrittura dati.
Step 4: invio comandi ESC/POS
Il software trasforma lo scontrino in una sequenza di byte ESC/POS:
- Header azienda (centrato, bold).
- Dati cliente (se presente).
- Lista articoli con prezzo.
- Totale (carattere doppio).
- Pagamenti.
- QR code se richiesto.
- Footer.
- Comando taglio.
I byte vengono scritti in chunk da 100-180 byte (limite per write characteristic) sulla characteristic della stampante.
Step 5: stampa fisica
La stampante riceve i comandi e stampa. Tempo: 2-4 secondi per uno scontrino normale.
Le caratteristiche Bluetooth tipiche
Per la stampa via BLE, il browser cerca queste UUID standard:
- Service UUID:
000018f0-0000-1000-8000-00805f9b34fb(più diffuso). - Characteristic UUID per scrittura:
00002af1-0000-1000-8000-00805f9b34fb.
Alcune stampanti specifiche usano UUID custom — il software deve supportare entrambi.
Prima volta: pairing della stampante
- Accendere la stampante.
- Stato BLE attivo (controllare manuale).
- Aprire il software POS in HTTPS.
- Cliccare "Connetti stampante".
- Selezionare la stampante dal dialog browser.
- Confermare pairing (alcuni modelli richiedono PIN, default: 0000 o 1234).
- Test stampa.
Una volta autorizzata, il browser ricorda la stampante per le sessioni successive (con qualche eccezione: Chrome ogni tanto richiede ri-pairing per sicurezza).
Troubleshooting comune
"La stampante non appare nell'elenco"
- Verifica che la stampante sia in modalità BLE (non Bluetooth Classic).
- Verifica che sia accesa e con carta.
- Riavvia la stampante.
- Riavvia il Bluetooth del dispositivo client.
"Connessione GATT fallita"
- Allontanare interferenze radio (microonde, Wi-Fi).
- Avvicinare i dispositivi (max 5-10m).
- Provare a riavviare la stampante.
"Stampa parziale o caratteri strani"
- Codifica encoding errata (default: cp858 o cp437 per ESC/POS).
- Chunk size troppo grande (ridurre a 80-100 byte).
- Stampante con firmware vecchio (aggiornare se possibile).
"Stampa lenta"
- Distanza dispositivo-stampante eccessiva.
- Batteria stampante scarica.
- Troppi byte inviati senza pausa.
Fallback PDF: la rete di sicurezza
La stampa Bluetooth può fallire per molte ragioni: stampante scarica, problema di pairing, browser sbagliato, iOS, ecc. Un buon POS software ha sempre un fallback automatico al PDF:
- Tentativo stampa BT → fallisce.
- Sistema apre automaticamente PDF in nuova scheda.
- Operatore stampa con stampante sistema o salva.
- Vendita resta sempre salvata.
Confronto: Bluetooth da browser vs altre tecnologie
| Tecnologia | Pro | Contro |
|---|---|---|
| Web Bluetooth (browser) | No driver, no app, hardware economico | No iOS Safari |
| App nativa con BT | Funziona ovunque incluso iOS | Costo sviluppo, store policy |
| Driver USB | Affidabile | Solo cablato, complesso |
| Network printing | Wi-Fi-based | Stampante più costosa |
| Server-side print + ESC/POS to file | Cross-platform totale | Latenza, complessità |
Per piccolo retail con Android o desktop: Web Bluetooth è la soluzione più semplice ed economica.
Sicurezza
Web Bluetooth è progettata con sicurezza in mente:
- Autorizzazione esplicita dell'utente per ogni nuova stampante.
- Sandbox: il sito non può scoprire dispositivi senza il consenso.
- HTTPS obbligatorio.
- Nessun dato persistente del dispositivo accessibile.
I moduli Gestya per la stampa POS
- Vendite al Banco con stampa Bluetooth ESC/POS integrata e fallback PDF.
- Articoli con barcode e prezzi.
- Magazzino con scarico automatico.
Scopri Gestya e stampa scontrini direttamente dal browser senza driver.