PC SOFT

PROFESSIONAL NEWSGROUPS
WINDEVWEBDEV and WINDEV Mobile

Home → WINDEV Mobile 2024 → Android Imprimante Bluetooth en CPCL
Android Imprimante Bluetooth en CPCL
Started by JEQUIDET, Dec., 02 2016 10:25 AM - 11 replies
Registered member
66 messages
Popularité : +6 (6 votes)
Posted on December, 02 2016 - 10:25 AM
Bonjour

je veux imprimer en Android avec une imprimante Bluetooth en CPCL en utilisant les sockets (Gracies W. Fernando)
voici mon code
tw est une chaîne="SerialPortServiceClass_UUID" //nom du service
adrimp est une chaîne="00:13:7B:5D:EA:8D" //adresse Citizen CMP-30L en CPCL
sk est une chaîne="Test" // nom socket
sp est une chaîne="$" //séparateur de socket

//a imprimer
imp est une chaîne =""

imp="! 0 200 200 210 2 "+RC

imp+="TEXT 1 0 10 10 COUCOU "+RC
imp+="TEXT 1 0 20 28 toto "+RC
imp+="TEXT 2 0 25 40 TITI "+RC
imp+="TEXT 3 0 27 28 ZoZO "+RC
imp+="TEXT 1 0 50 30 DATE = "+DateVersChaîne(DateSys)+" "+RC
imp+="PRINT"+RC+RC+RC

//

SI PAS SocketConnectBluetooth(sk,tw,adrimp,8000) ALORS
Info("connexion impossible "+ErreurInfo())
SINON
SocketChangeModeTransmission(sk,SocketMarqueurFin,sp)
SI SocketEcrit(sk,(imp+sp))=Faux ALORS Erreur(ErreurInfo())
SocketFerme(sk)
FIN


en exécution l'imprimante imprime :

TEXT 1 0 10 10 COUCOU
TEXT 1 0 20 28 toto
TEXT 2 0 25 40 TITI
TEXT 3 0 27 28 ZoZO
TEXT 1 0 50 30 DATE = 02/12/2016
PRINT

visiblement le codage CPCL n'est pas pris en compte ou peut-être l'erreur
merci d'avance
Posted on December, 02 2016 - 1:40 PM
Bonjour

je ne connais pas ce codage spécifiquement, mais normalement, les codes
de contrôles, ce n'est pas du texte simple (ou l'imprimante ne saurait
pas comment les différencier du texte, justement)

Donc, les codes de contrôles sont en général binaire, pas chaine, et
doivent être envoyées avec la fonction iEscape quand on imprime normalement.

Dans ton cas (par socket), utilise un buffer pour préparer ton envoi et
mets dedans les valeurs binaires des codes de controle

Cordialement


--
Fabrice Harari
Consultant WinDev, WebDev et WinDev Mobile International

A votre disposition : WXShowroom.com, WXReplication (open source) et
maintenant WXEDM (open source)

Plus d'information sur http://fabriceharari.com

Le 12/2/2016 à 4:25 AM, JEQUIDET a écrit :
Bonjour

je veux imprimer en Android avec une imprimante Bluetooth en CPCL en
utilisant les sockets (Gracies W. Fernando)
voici mon code
tw est une chaîne="SerialPortServiceClass_UUID" //nom du service
adrimp est une chaîne="00:13:7B:5D:EA:8D" //adresse Citizen CMP-30L en CPCL
sk est une chaîne="Test" // nom socket
sp est une chaîne="$" //séparateur de socket

//a imprimer
imp est une chaîne =""

imp="! 0 200 200 210 2 "+RC

imp+="TEXT 1 0 10 10 COUCOU "+RC
imp+="TEXT 1 0 20 28 toto "+RC
imp+="TEXT 2 0 25 40 TITI "+RC
imp+="TEXT 3 0 27 28 ZoZO "+RC
imp+="TEXT 1 0 50 30 DATE = "+DateVersChaîne(DateSys)+" "+RC
imp+="PRINT"+RC+RC+RC

//

SI PAS SocketConnectBluetooth(sk,tw,adrimp,8000) ALORS
Info("connexion impossible "+ErreurInfo())
SINON
SocketChangeModeTransmission(sk,SocketMarqueurFin,sp)
SI SocketEcrit(sk,(imp+sp))=Faux ALORS Erreur(ErreurInfo())
SocketFerme(sk)
FIN


en exécution l'imprimante imprime :

TEXT 1 0 10 10 COUCOU TEXT 1 0 20 28 toto TEXT 2 0 25 40 TITI TEXT 3 0
27 28 ZoZO TEXT 1 0 50 30 DATE = 02/12/2016
PRINT

visiblement le codage CPCL n'est pas pris en compte ou peut-être l'erreur
merci d'avance
Registered member
66 messages
Popularité : +6 (6 votes)
Posted on December, 02 2016 - 4:48 PM
Re

je me réponds à moi même pour eviter aux autres de chercher
voic le code qui marche
tw est une chaîne="SerialPortServiceClass_UUID" //nom du service
adrimp est une chaîne="00:13:7B:5D:EA:8D" //adresse Citizen CMP-30L en CPCL
sk est une chaîne="Test" // nom socket
sp est une chaîne="$" //séparateur de socket


//a imprimer
Imp est une chaîne=""

Imp="! 0 200 200 210 2 "+RC

Imp+="TEXT 1 0 10 10 COUCOU "+RC
Imp+="TEXT 1 0 20 28 toto "+RC
Imp+="TEXT 2 0 25 40 TITI "+RC
Imp+="TEXT 3 0 27 28 ZoZO "+RC
Imp+="TEXT 1 0 50 50 DATE = "+DateVersChaîne(DateSys)+" "+RC
Imp+="PRINT"+RC+RC+RC

//il faut passer par un buffer et envoyer son UnicodeVersAnsi

xbuf est un Buffer=Imp

SI PAS SocketConnectBluetooth(sk,tw,adrimp,8000) ALORS
Info("connexion impossible "+ErreurInfo())
SINON
SocketChangeModeTransmission(sk,SocketMarqueurFin,sp)
SI SocketEcrit(sk,(UnicodeVersAnsi(xbuf)+sp))=Faux ALORS Erreur(ErreurInfo())
SocketFerme(sk)
FIN


en fait , ce que l'on doit imprimer est à mettre dans un buffer et envoyer son code ANSI

Merci
Fabrice
Registered member
123 messages
Popularité : +46 (46 votes)
Posted on December, 19 2016 - 1:45 PM
very good

JEQUIDET a écrit :
Bonjour

je veux imprimer en Android avec une imprimante Bluetooth en CPCL en utilisant les sockets (Gracies W. Fernando)
voici mon code
tw est unechaîne="SerialPortServiceClass_UUID"//nom du service
adrimp est unechaîne="00:13:7B:5D:EA:8D"//adresse Citizen CMP-30L en CPCL
sk est unechaîne="Test"// nom socket
sp est unechaîne="$"//séparateur de socket

//a imprimer
imp est unechaîne=""

imp="! 0 200 200 210 2 "+RC

imp+="TEXT 1 0 10 10 COUCOU "+RC
imp+="TEXT 1 0 20 28 toto "+RC
imp+="TEXT 2 0 25 40 TITI "+RC
imp+="TEXT 3 0 27 28 ZoZO "+RC
imp+="TEXT 1 0 50 30 DATE = "+DateVersChaîne(DateSys)+" "+RC
imp+="PRINT"+RC+RC+RC

//

SI PASSocketConnectBluetooth(sk,tw,adrimp,8000)ALORS
Info("connexion impossible "+ErreurInfo())
SINON
SocketChangeModeTransmission(sk,SocketMarqueurFin,sp)
SISocketEcrit(sk,(imp+sp))=FauxALORSErreur(ErreurInfo())
SocketFerme(sk)
FIN


en exécution l'imprimante imprime :

TEXT 1 0 10 10 COUCOU
TEXT 1 0 20 28 toto
TEXT 2 0 25 40 TITI
TEXT 3 0 27 28 ZoZO
TEXT 1 0 50 30 DATE = 02/12/2016
PRINT

visiblement le codage CPCL n'est pas pris en compte ou peut-être l'erreur
merci d'avance


--
Atte. Willian Fernando
Registered member
217 messages
Popularité : +12 (12 votes)
Posted on December, 29 2016 - 12:11 AM
Bonjour et merci de votre retour JEQUIDET
Juste une petite question, Est ce que le code que vous fournissez concerne un modèle particulier d'imprimante ou peut être adapté à d'autre imprimante?
Registered member
21 messages
Popularité : +3 (3 votes)
Posted on July, 20 2017 - 9:19 AM
Bonjour

Et Vous avez une idée pour imprimer une image?

Merci
Registered member
66 messages
Popularité : +6 (6 votes)
Posted on July, 20 2017 - 5:56 PM
Bonjour

pour les images, elles doivent être en .PCX (Noir/Blanc)

ma doc de la CMP-30 Citizen indique
PCX 0 30 !<IMAGE.PCX

mais jamais testé

Bon courage et merci du retour
Registered member
21 messages
Popularité : +3 (3 votes)
Posted on July, 24 2017 - 11:02 AM
Ceci est le SDK envoyé par le fournisseur de mon imprimante bluetooth

byte[] sendData = null;
PrintPic pg = new PrintPic();
pg.initCanvas(384);
pg.initPaint();
pg.drawImage(0, 0, "/mnt/sdcard/icon.jpg");
sendData = pg.printDraw();
Finally forward the sendData to bluetooth Printer for image printing.


Et on m'a donné ce lien mais j'ai pas encore trouvé une issue pour imprimer une image
https://stackoverflow.com/questions/28741707/android-blutooth-printer-printing-html-text
Registered member
3,657 messages
Popularité : +175 (223 votes)
Posted on August, 12 2017 - 4:00 PM
Bonjour,

http://forum.pcsoft.fr/fr-FR/pcsoft.br.windev/1315-imprimindo-usando-windev-mobile-uma-impressora-bluetooth/read.awp

:merci:

--
Adriano José Boller
______________________________________________
Consultor e Representante Oficial da
PcSoft no Brasil
+55 (41) 99949 1800
adrianoboller@gmail.com
skype: adrianoboller
http://wxinformatica.com.br/
Message modified, August, 12 2017 - 4:01 PM
Registered member
217 messages
Popularité : +12 (12 votes)
Posted on December, 28 2018 - 11:50 AM
Bonjour,
Je vous remercie de cette contribution!
Je suis confronté au même problème, lorsque j'envoi du texte en code CPCL à l'imprimante(via socketEcrit), le code CPCL est imprimé tel quel comme si que j'imprimais du texte brute. On doit peut être dire à l'imprimante que la chaine est un code CPCL mais comment ?
exemple si j'envoie à l'imprimante le buffer
TEXT 1 0 10 10 COUCOU
TEXT 1 0 20 28 toto
TEXT 2 0 25 40 TITI
TEXT 3 0 27 28 ZoZO
TEXT 1 0 50 30 DATE = 02/12/2016
PRINT

En exécution, ça imprime ce même texte :
TEXT 1 0 10 10 COUCOU
TEXT 1 0 20 28 toto
TEXT 2 0 25 40 TITI
TEXT 3 0 27 28 ZoZO
TEXT 1 0 50 30 DATE = 02/12/2016
PRINT

J'utilise bien votre code en faisant passer la chaine en buffer ansi via la fonction UnicodeVersAnsi()), ceci dit l'imprimante ne comprends pas qu'il s'agit d'un code CPCL
tw est unechaîne="SerialPortServiceClass_UUID"//nom du service
adrimp est unechaîne="00:13:7B:5D:EA:8D"//adresse Citizen CMP-30L en CPCL
sk est unechaîne="Test"// nom socket
sp est unechaîne="$"//séparateur de socket


//a imprimer
Imp est unechaîne=""

Imp="! 0 200 200 210 2 "+RC

Imp+="TEXT 1 0 10 10 COUCOU "+RC
Imp+="TEXT 1 0 20 28 toto "+RC
Imp+="TEXT 2 0 25 40 TITI "+RC
Imp+="TEXT 3 0 27 28 ZoZO "+RC
Imp+="TEXT 1 0 50 50 DATE = "+DateVersChaîne(DateSys)+" "+RC
Imp+="PRINT"+RC+RC+RC

//il faut passer par un buffer et envoyer son UnicodeVersAnsi

xbuf est un Buffer=Imp

SI PASSocketConnectBluetooth(sk,tw,adrimp,8000)ALORS
Info("connexion impossible "+ErreurInfo())
SINON
SocketChangeModeTransmission(sk,SocketMarqueurFin,sp)
SISocketEcrit(sk,(UnicodeVersAnsi(xbuf)+sp))=FauxALORSErreur(ErreurInfo())
SocketFerme(sk)
FIN
Posted on January, 29 2019 - 2:48 PM
j'ai un probleme très sérieux je dois faire une application qui va imprimer des tickets avec windev mobile 20 mais je ne sais pas comment m'y prendre.
Posted on July, 20 2020 - 4:34 PM
je voudrai que vous m'aidiez à imprimer un code barre sur impriment ticket via windev mobile