Benvenuto in gestionestandgastronomico Q&A, dove potrai porre quesiti e ricevere risposte da altri membri della community.
0 voti

La stampa su stampante termica è comodissima, molto pratica ed economica, in quanto sono molto piccole a differenza delle grosse stampanti laser, non occorre acquistare toner, ne conservarne di riserva, non occorre preparare e caricare la carta, lo scontrino esce di lunghezza variabile a seconda della lunghezza dell'ordine e può essere automaticamente tagliato.

Nel nostro caso, però abbiamo a disposizione delle stampanti seriali (EPSON TM-L90, Olivetti PRT 100) che risultano lentissime nella stampa grafica (~ 35 secondi per uno scontrino cliente con una sola pietanza, nonostante il numero di campi stampati sia stato ridotto all'osso), al contrario della stampa a caratteri per cui sarebbero velocissime (150 mm/sec).

L’ideale sarebbe poter avere in alternativa le stampe a caratteri, potendo sfruttare anche i comandi standard EPSON ESC per la stampa in doppia altezza, doppia larghezza, grassetto, ecc.. di alcuni campi.

Per tale gestione, al posto dei file .html,  si potrebbero sfruttare semplici file di testo con segnaposto sia per i set di caratteri di controllo da inviare alle stampanti, sia per i vari campi, ai quali poter aggiungere varie caratteristiche, quali il tipo di campo (utile per la corretta formattazione, il numero massimo di caratteri e l’allineamento . Esempio:

[TESTATA]
[SET=27;87;1]Ordine n.: [ordine.cliente;numero.0;4;destra]    del: [ordine.data;data./;10;sinistra]

[RIGHE]
Descrizione                Quantità    Prezzo unitario Prezzo totale
[riga_ordine.descrizione;testo;20;sinistra]        [riga_ordine.quantita;numero.0;3;destra] ...

[CODA]
TOTALE ORDINE: [ordine.totale();numero.2;7;destra] [SET=29,86,1]

Note dell'esempio: 
1) Nome del campo da stampare: Come nella versione in HTML
2) Formattazione del campo: numero.0 = numero formattato con 0 decimali, numero.2 = numero formattato con 2 decimali, data./ = data con la barra come separatore -> 12/07/2018, ecc..
3) Numero massimo di caratteri da stampare.
4) Allineamento del campo.

SET= set di caratteri decimali da inviare alla stampante. Es.:27,87,1 stampa la riga in doppia larghezza, 29,86,1 taglio carta, ecc.. (https://docs.microsoft.com/it-it/windows/uwp/devices-sensors/epson-esc-pos-with-formatting e https://files.support.epson.com/pdf/general/escp2ref.pdf)

quesito posto da (230 punti)

2 Risposte

0 voti
Questa è una domanda complessa a cui non ti so rispondere. La giro ad Emanuele.

Ciao.

Mauro.
risposta inviata da (42.2k punti)
0 voti
Ciao,

credo che difficilmente questa soluzione potrà essere implementata comunque grazie del suggerimento.

Emanuele
risposta inviata da (15.1k punti)
...