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
 

Lucas Siqueira

Active Member
Licensed User
Longtime User
Ciao!
Hai potuto stampare QRCODE? puoi inviare un esempio ... Ho cercato 2 mesi e non riesco a capire come stampare sulla stampante.
per favore aiutami!
 

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: 980

Star-Dust

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