Italian stampante termica 80mm da font grande a font piccolo funziona solo se spegno e riaccendo stampante

sirjo66

Well-Known Member
Licensed User
Longtime User
spiegami questa linea cosa dovrebbe fare che ancora non l'ho capito:
B4X:
SendMsg = Chr(27) & "!" & Chr(8+8+16)

secondo me dovresti usare questo codice per avere il carattere grande:
B4X:
SendMsg = Chr(27) & "!" & Chr(8+16+32)

e questo per ritornare al carattere normale (per cui lascia stare il reset che non è una buona cosa da fare):
B4X:
SendMsg = Chr(27) & "!" & Chr(0)

Te l'abbiamo detto in tutte le salse ma non c'è modo che tu guardi il manuale
Alla pagina https://reference.epson-biz.com/modules/ref_escpos/index.php?content_id=23 come ti aveva detto Picena, trovi la spiegazione, se guardi la tabella che c'è, sulla colonna "Decimal" vedrai i valori che gli devi dare.
Nel mio caso, 8+16+32 vuol dire che viene settato "Emphasized mode" (valore 8), il " Double-height mode" (valore 16) e il "Double-width mode" (valore 32).

Poi per tornare al carattere normale devi inviare un Chr(0) così disabilita tutto e hai il font standard
Guarda questo e provalo, però lo devi anche capire, non solo copiare.
Un altro errore che facevi è che quando invii i comandi alla stampante non devi usare il UTF8 ma il ASCII.
Dato che non sapevi che Chr(27) è il ESC direi che dovresti anche studiarti il codice ASCII

B4X:
Sub StampaTest
   Log("sono sulla sub stampatest")
   If connected  Then
      If Astreams.IsInitialized = False Then Return
      Dim sendMsgtest As String
      sendMsgtest = Chr(27) & Chr(0)
      Astreams.Write(sendMsgtest.GetBytes("ASCII"))
      Dim txt As String = "Testo di prova normale"
      Astreams.Write(txt.GetBytes("UTF8"))
      sendMsgtest = Chr(29) & Chr(86) & Chr(48) ' Cut?
      Astreams.Write(sendMsgtest.GetBytes("ASCII"))
   End If
End Sub

Sub StampaTest2
   Dim SendMsg As String
   Log("sono sulla sub stampatest2")
   If connected Then
      If Astreams.IsInitialized = False Then Return
      SendMsg = Chr(27) & "!" & Chr(8+16+32)
      Astreams.Write(SendMsg.GetBytes("ASCII"))
      Dim txt As String = "Testo di prova GRANDE"
      Astreams.Write(txt.GetBytes("UTF8"))
      SendMsg = Chr(29) & Chr(86) & Chr(48) ' Cut?
      Astreams.Write(SendMsg.GetBytes("UTF8"))
   End If
End Sub[code]
 
Last edited:

fifiddu70

Well-Known Member
Licensed User
Longtime User
Sirjo è possibile che nella stampante termica da 80mm di un mio amico che ha una excelvan E801 nella seconda stampa ( Sub StampaTest2 ) praticamente gli escono due copie uguali mentre nella mia stampante termica Excelvan ZJ 8220 invece esce solo 1 stampa quindi corretta?
potrebbe essere dovuto al UTF8 al posto dell'ascii?
 

sirjo66

Well-Known Member
Licensed User
Longtime User
Sirjo è possibile che nella stampante termica da 80mm di un mio amico che ha una excelvan E801 nella seconda stampa ( Sub StampaTest2 ) praticamente gli escono due copie uguali mentre nella mia stampante termica Excelvan ZJ 8220 invece esce solo 1 stampa quindi corretta?

E' stranissimo, secondo me è un problema del programma, non della stampante

potrebbe essere dovuto al UTF8 al posto dell'ascii?
Non saprei
 

Xfood

Expert
Licensed User
Sirjo è possibile che nella stampante termica da 80mm di un mio amico che ha una excelvan E801 nella seconda stampa ( Sub StampaTest2 ) praticamente gli escono due copie uguali mentre nella mia stampante termica Excelvan ZJ 8220 invece esce solo 1 stampa quindi corretta?
potrebbe essere dovuto al UTF8 al posto dell'ascii?
tra il mio materiale ho trovato questo,
vedi se puo esserti utile.
 

Attachments

  • BluetoothPrinter_v2.0.zip
    298.6 KB · Views: 178

picenainformatica

Active Member
Licensed User
Longtime User
La doppia stampa potrebbe essere una opzione della stampante (stampare due copie della stessa ricevuta). Avete un manuale?
 

fifiddu70

Well-Known Member
Licensed User
Longtime User
La doppia stampa potrebbe essere una opzione della stampante (stampare due copie della stessa ricevuta). Avete un manuale?
Il manuale si ma nn credo che centri, in sostanza prima stampava solo la comanda ed andava tutto bene, adesso stampa sia la comanda che alla pressione del tasto sul msgbox stampa anche un numeretto che sarebbe l'eliminacode, solo che ne stampa due, mentre sulla mia stampante stessa marca Excelvan ma modello diverso ne stampa solo 1.
 

picenainformatica

Active Member
Licensed User
Longtime User
Allora il problema può essere nella parte con msgbox. Fai un piccolo esempio che riproduca il problema e pubblicalo.
 
Top