Italian Codici ESC/POS e QR code

StefanoTag

Active Member
Licensed User
Longtime User
Salve a tutti!
Ho recentemente acquistato una stampante portatile termica bluetooth con la quale ho faticosamente imparato a scrivere e formattare testo mediante i comandi ESC/POS. Adesso avrei bisogno di poter stampare un QR Code ma non trovo alcuna documentazione che mi aiuti a capire la sequenza dei codici per ottenere questa stampa. Qualcuno ha avuto esperienze del genere e può darmi qualche suggerimento?
Grazie in anticipo
Stefano
 

MarcoRome

Expert
Licensed User
Longtime User
Salve a tutti!
Ho recentemente acquistato una stampante portatile termica bluetooth con la quale ho faticosamente imparato a scrivere e formattare testo mediante i comandi ESC/POS. Adesso avrei bisogno di poter stampare un QR Code ma non trovo alcuna documentazione che mi aiuti a capire la sequenza dei codici per ottenere questa stampa. Qualcuno ha avuto esperienze del genere e può darmi qualche suggerimento?
Grazie in anticipo
Stefano
Prova questo
GS "(k" 4 0 49 65 50 0 GS "(k" 3 0 49 67 5 GS "(k" 3 0 49 69 48 GS "(k" 28 0 49 80 48 "https://www.b4x.com/" GS "(k" 3 0 49 81 48
Con encoding 437
 

StefanoTag

Active Member
Licensed User
Longtime User
Ciao MarcoRome! Innanzi tutto ti ringrazio per l'attenzione...ma purtroppo sono poco esperto e non riesco a capire bene il suggerimento che mi dai. Puoi essere un pò più esplicito o farmi un esempio concreto? Cosa significa "con encoding 437"?
Io, ad esempio, per stampare un codice a barre EAN39, usavo una stringa di questo tipo:

PrintBuffer=Chr(29)&"k"&Chr(4)&"1234567"

grazie in anticipo per ogni ulteriore chiarimento
 

MarcoRome

Expert
Licensed User
Longtime User
Ciao MarcoRome! Innanzi tutto ti ringrazio per l'attenzione...ma purtroppo sono poco esperto e non riesco a capire bene il suggerimento che mi dai. Puoi essere un pò più esplicito o farmi un esempio concreto? Cosa significa "con encoding 437"?
Io, ad esempio, per stampare un codice a barre EAN39, usavo una stringa di questo tipo:

PrintBuffer=Chr(29)&"(k"&Chr(4)&"1234567"

grazie in anticipo per ogni ulteriore chiarimento

Il codice è molto simile al tuo che utilizzi per il BarCode. Se noti le prime istruzioni sono uguali anche per il QrCode ..infatti:

GS "k" 4 ....

equivale a quello che tu scrivi per il BarCode
PrintBuffer=Chr(29)&"k"&Chr(4) &....

Quindi con un buon manualetto ESC POS o altri manuali (su internet è pieno)
Vedrai come tradurre da Ascii in Decimale, esempio GS in Ascii equivale a 29 in decimale, esempio:
upload_2017-7-1_19-58-47.png


Relativamente al discorso encoding ti riporto un esempio:

...
PrintBuffer = Chr(29) & "k" & Chr(4) & Chr(0) & Chr(49).....
astreams1.Write(PrintBuffer.GetBytes("cp437"))

in questo caso hai l'enconding 437
 

StefanoTag

Active Member
Licensed User
Longtime User
Ciao MarcoRome! Spiegazione più che esauriente! Grazie mille! Credo d'aver capito...adesso guarderò con attenzione quel manualetto e cercherò di mettere in pratica le tue indicazioni
di nuovo grazie!
Stefano
 

StefanoTag

Active Member
Licensed User
Longtime User
Ciao, nei miei tentativi rinunciai poi alla stampa del QRCode e mi accontentai di stampare un barCode:

B4X:
PrintBuffer=""
PrintBuffer=PrintBuffer &  Chr(27)&"a"&Chr(1) ' Justification (center)
PrintBuffer=PrintBuffer &  Chr(29)&"h"&Chr(80) ' Set bar code height  50
PrintBuffer=PrintBuffer &  Chr(29)&"H"&Chr(2) ' Select printing position of HRI characters
PrintBuffer=PrintBuffer &  Chr(29)&"f"&Chr(1) ' Select font For HRI characters
PrintBuffer=PrintBuffer &  Chr(29)&"k"&Chr(4)& s_BarCode &Chr(0) ' Print bar code: s_BarCode <<<<<
PrintBuffer=PrintBuffer &  Chr(27)&"!"&Chr(0)&""&Chr(10)
Printer.WriteLine(PrintBuffer)
Printer.Flush
Printer.Close
BTConnection.Disconnect 'disable this if you like
 

Star-Dust

Expert
Licensed User
Longtime User
S_BarCode cos'è? Stringa, int o altro?
 

StefanoTag

Active Member
Licensed User
Longtime User
...hai ragione, scusa... s_BarCode è semplicemente la stringa che contiene il codice da stampare
 

Star-Dust

Expert
Licensed User
Longtime User
Codice numerico ? Se lo trasforma la stampante in codice a barre?

Es. S_BarCode="123498790088" ?
 
Last edited:

StefanoTag

Active Member
Licensed User
Longtime User
Non era necessariamente un codice interamente numerico...il mio era un numero seguito da una stringa. Esempio: s_Bar_Code="123456/A"
Si...sarà il firmware della stampante a tradurlo in barcode secondo i parametri (altezza etc.) precedentemente inviati
 

Star-Dust

Expert
Licensed User
Longtime User
Ok, grazie
 

MarcoRome

Expert
Licensed User
Longtime User
In allegato esempio per stampare QRCode. L'esempio è stato scritto da @JordiCP .
Buona giornata a tutti
 

Attachments

  • PosPrintQR_V05.zip
    23.7 KB · Views: 778

Star-Dust

Expert
Licensed User
Longtime User
Grazie molte mi servirà per la mia libreria
 
Last edited:
Top