Italian stampare da tablet a stampante termica tramite cavo otg

fifiddu70

Well-Known Member
Licensed User
Longtime User
Ciao a tutti e like like like, possibile che sia così difficile trovare un codice funzionante per stampare da tablet a stampante pos termica con usb tramite cavo otg del telefono? volevo realizzare una piccola app che permettesse la stampa di un dato, volevo farlo con stampante termica attraverso un collegamento a filo al posto del bluetooth o del wifi, qualcuno sa dirmi come fare? la stampantina in questione è una excelvano 50mm.
 

fifiddu70

Well-Known Member
Licensed User
Longtime User
si ho provato ma mi hanno parlato di usare asci art, ma non è quello che cerco con esattezza.
 

sirjo66

Well-Known Member
Licensed User
Longtime User
ma tu vuoi stampare testo o grafica ??

comunque non ho ben capito se non riesci a comunicare con la stampante o semplicemente se non riesci a far stampare della grafica

che comando usi per stampare ??
Stai usando "ESC *" o che altro ??
 
Last edited:

fifiddu70

Well-Known Member
Licensed User
Longtime User
non ho ancora usato nessun comando, sto solo cercando un esempio pratico funzionante che riesca a stampare, fino adesso riesco a comunicare con la stampante perchè mi dice connect succesfully, ma non riesco a capire come mandare in stampa usando asyncstream
 

fifiddu70

Well-Known Member
Licensed User
Longtime User
per adesso funziona in bluetooth, proprio il link che hai postato, la stampante è uguale identica adesso sono riuscito tramite questo codice a far stampare in bluetooth il carattere più grande, ma vorrei sapere se si puà stampare ancora più grande,
B4X:
If BTConnected  Then
        Log( "PRINT " & BTConnected)
        If Astreams.IsInitialized = False Then Return
       
        Dim SendMsg As String       
        Dim buffer() As Byte
        buffer = txtreport.Text.GetBytes("UTF8")
        SendMsg = Chr(27) & "!" &Chr(8+16+64) & "" & CRLF
        Astreams.Write(SendMsg.GetBytes("UTF8"))
        Astreams.Write(buffer)
        txtreport.SelectAll
        contatore = contatore + 1
        timer1.Enabled=True
       
    Else
       
        Msgbox("Attenzione connetti la stampante","STAMPANTE NON CONNESSA")
       
    End If
ma sopratutto mi serve che stampi con il cavetto usb e non in bluetooth, non sono riuscito a trovare nulla di funzionante,
riepilogando le mie esigenze sono: stampare un numero grande quanto quasi il foglio, vedi foto, e sopratutto vorrei trovare un codice funzionante che stampi tramite cavo e non in bluetooth, ovviamente in usb.
 

Attachments

  • 20839305_10212522524931641_823161217_n.jpg
    20839305_10212522524931641_823161217_n.jpg
    53.9 KB · Views: 297

fifiddu70

Well-Known Member
Licensed User
Longtime User
questo è il massimo che sono riuscito a stampare fino adesso, ma sempre in bluetooth e non tramite cavo.
 

Attachments

  • 20864487_10212539881685549_185948651_n.jpg
    20864487_10212539881685549_185948651_n.jpg
    12.9 KB · Views: 276

sirjo66

Well-Known Member
Licensed User
Longtime User
il protocollo ESC/P (e il successivo ESC/POS) è nato per le stampanti ad aghi che non hanno la gestione dei caratteri vettoriali.

non hai quindi la possibilità di definire quando vuoi grande il font, cosa che invece si fa sulle stampanti laser e/o inkjet

ecco quindi cosa ti consiglio di fare: sul PC apri un word-processor (Word, LibreOffice o quello che ti piace di più), scrivi 0123456789 , selezioni il font che ti piace e lo ingrandisci (ora non so dirti quanto, fai delle prove)
Poi premi "stamp", apri Paint, premi Ctrl+V e ti trovi l'immagine a video
Per ogni numero ti crei quindi un file BMP (in bianco e nero) che rappresenta quindi il tuo numero bello grande, avrai così 10 file BMP con il numero.
Poi nello scontrino, quando devi scrivere il numero che vuoi, leggi il file BMP relativo, e con il comando "ESC *" (o altro comando che vuoi tu) invii l'immagine alla stampante che lo stamperà quindi bello grande.
Se è troppo grande o troppo piccolo basta che rifai l'operazione modificando la grandezza del font.
Secondo me non è un grosso problema fare una cosa del genere, il formato BMP a due colori è facile da analizzare (è un formato banalissimo) e riesci quindi senza problemi a trasformarlo in codici per il comando "ESC *"

Per il problema che non riesci a stampare se è collegato via cavo purtroppo non so dirti

Sergio

Edit: la tua selezione del font è sbagliata, non devi usare "ESC !", ma prova a dare il comando: ESC W ESC w (doppia larghezza e doppia altezza), magari ti viene grande abbastanza (però questo è standard ESC/P, non ESC/POS)

Edit2: puoi anche usare il ESC ! ma devi dare chr(16+32)
 
Last edited:

LucaMs

Expert
Licensed User
Longtime User
sul PC apri un word-processor (Word, LibreOffice o quello che ti piace di più), scrivi 0123456789 , selezioni il font che ti piace e lo ingrandisci (ora non so dirti quanto, fai delle prove)
oppure apri il pannello di controllo e clicka su Caratteri:
upload_2017-8-15_15-18-16.png


Poi doppio-click su uno dei font file:
upload_2017-8-15_15-20-49.png



upload_2017-8-15_15-21-30.png




Poi premi "stamp"
SHIFT + STAMP
 

Star-Dust

Expert
Licensed User
Longtime User
Il Bitmap del Numero io lo creerei di volra in volta, non occuperei spazio nell'App per 10 immagini dei numeri.

B4X:
Sub Numero(N As Int) As Bitmap
    Dim C As Canvas
    Dim B As Bitmap
    Dim Grandezza As Int = 100dip
    Dim ColoreSfondo As Int = Colors.White
    Dim ColoreNumero As Int = Colors.Black

    B.InitializeMutable(Grandezza,Grandezza)
    C.Initialize2(B)

    C.DrawColor(ColoreSfondo)
    C.DrawText(N,C.DrawColor(ColoreSfondo)/2,C.DrawColor(ColoreSfondo)/2,Typeface.DEFAULT_BOLD,Grandezza/3,ColoreNumero,"CENTER")
    Return b
End Sub

NB per @fifiddu70 voglio molti Like
 
Top