|
FORUMS PROFESSIONNELS WINDEV, WEBDEV et WINDEV Mobile |
| | | | | |
Imprimer signature Zebra RW420 |
Débuté par Multipass, 08 jan. 2016 09:14 - 6 réponses |
| |
| | | |
|
| |
Membre enregistré 103 messages Popularité : +4 (4 votes) |
|
Posté le 08 janvier 2016 - 09:14 |
Bonjour à tous,
J'ai besoin de votre aide sur un projet WM21 pour Windows Mobile. Je cherche à intégrer une signature client lors de l'édition d'un ticket de réception.
Concernant le ticket, le code d’impression est construit dans une chaine : (le langage utilisé est le CPCL)
sCodeImp est un chaîne
sCodeImp = "! 0 200 200 %Hauteur% 1"+RC sCodeImp += "IN-MILLIMETERS"+RC sCodeImp += "COUNTRY FRANCE"+RC sCodeImp += "CENTER"+RC sCodeImp += "PCX 0 0 !<LOGO.PCX"+RC
sCodeImp += "LEFT"+RC sCodeImp += "TEXT 7 0 4 28 CLIENT :"+RC sCodeImp += "TEXT 7 0 23 28 "+FACTURES.nom_client+RC sCodeImp += "TEXT 7 0 4 32 CODE :"+RC sCodeImp += "TEXT 7 0 23 32 "+FACTURES.code_client+RC sCodeImp += "TEXT 7 0 53 32 DATE :"+RC
gbufMasque est un Buffer = sCodeImp
sEcrit(8,UnicodeVersAnsi(gbufMasque))
Concernant l’image de la signature, voici la syntaxe attendue par l’imprimante : Command width height x y data
- Width correspond à la largeur de l'image en points (dots). Cette valeur, qui doit être un multiple de 8, devra être divisée par 8 pour la convertir en bytes. Exemple pour une image de 16 dots de large : 16/8 = 2.
- Height correspond à la hauteur de l'image en points (dots). Exemple pour une image de 16 dots de haut : 16.
- data correspond à la conversion hexadécimale des données binaires de l'image. Exemple avec le contour d'un carré de 16x16 points : FFFF80018001800180018001800180018001800180018001800180018001FFFF
soit : FFFF 1111111111111111 8001 1000000000000001 8001 1000000000000001 8001 1000000000000001 8001 1000000000000001 8001 1000000000000001 8001 1000000000000001 8001 1000000000000001 8001 1000000000000001 8001 1000000000000001 8001 1000000000000001 8001 1000000000000001 8001 1000000000000001 8001 1000000000000001 8001 1000000000000001 FFFF 1111111111111111
Et si j’intègre l’exemple dans le code d’impression du ticket, j’ai bien un carré de 16x16 :
sCodeImp += "LEFT"+RC sCodeImp += "TEXT 7 0 4 "+nPosY+" TEST CARRE 16X16"+RC
sCodeImp += "EG 2 16 10 "+nPosY+RC sCodeImp += "FFFF80018001800180018001800180018001800180018001800180018001FFFF"+RC
Mais lorsqu’il s’agit d’imprimer le dessin/signature du client, ce n’est pas la même histoire…
Je bute tout d’abord sur la conversion pixels/points : j’ai lu sur le net qu’1 pixel vaut 0.75 point mais certains autour de moi pensent qu’1 pixel vaut 1 point…
Je bute également sur la conversion binaire/hexa : j’ai attendu avec impatience la dispo de la fonction BufferVersHexa() sous Windows Mobile et j’ai essayé plusieurs méthodes dont voici la plus simple :
sCodeImp += "LEFT"+RC sCodeImp += "TEXT 7 0 4 "+nPosY+" SIGNATURE CLIENT"+RC
BufferImg est un Buffer = FACTURES.sign_liv sCodeImp += BufferVersHexa(BufferImg)+RC
Au final j’ai un peu tout essayé en jonglant avec les options de BufferVersHexa sur le nb octets par mot et/ou par ligne… voire en supprimant les RC et les espaces… j’ai bien quelque chose qui s’imprime mais rien qui ressemble à ma signature de départ.
Alors si vous avez des réponses ou des pistes sur les conversions pixel/point et binaire/hexa, je suis preneur.
D’avance, Merci… |
| |
| |
| | | |
|
| | |
| |
Posté le 23 février 2016 - 10:11 |
Bonjour,
j'ai trouvé votre post sur ce forum, j'ai une imprimante bluetooth zebra j'aurai aimé savoir comment vous avez procédé pour vous y connecter et lancer une impression depuis une appli windev mobile ?
Merci de votre aide. |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 103 messages Popularité : +4 (4 votes) |
|
Posté le 23 février 2016 - 21:58 |
Bonjour Nico,
Il faut d'abord appairer le terminal avec l'imprimante (et définir le port de connexion). Côté WM, regarde les fonctions "s" : sOuvre() et sEcrit().
Par exemple et pour l'envoi de l'impression :
gbufMasque est un Buffer = sCodeImp SI sOuvre(8, 2000, 2000) = Vrai ALORS sFixeParamètre(8, 19200, 1, 8, 0) sEcrit(8,UnicodeVersAnsi(gbufMasque)) TANTQUE sDansFileSortie(8) > 0 Multitâche(1) FIN Multitâche(1) sFerme(8) Multitâche(1) FIN
A+ |
| |
| |
| | | |
|
| | |
| |
Posté le 24 février 2016 - 08:54 |
Merci pour votre réponse mais ces fonctions ne sont pas supportées pour Android |
| |
| |
| | | |
|
| | |
| |
Posté le 28 décembre 2018 - 15:01 |
Bonjour, je n'arrive plus d'imprimer par la langage CPCl. je suis avec Android ==> Zebra
sCodeImp += "PCX 0 0 !<LOGO.PCX"+RC l'image LOGO c'est une image dans l'application mobile ou stocké dans l'imprimante? comment vous faite l'appel à une image de type Jpg ?
J'ai essayé de mettre dans un buffer et la convertir en hexa dans la commande GRAPHIC mais ça donne une bonde noir. quelqu'un peut m'aider SVP. voici mon code.
ImprimeImage(bufF est un Buffer) sMessage is chaîne
sMessage += "! 0 200 200 210 1"+RC sMessage += "EG 50 150 90 45 "+BufferVersHexa(bufF,1)+RC sMessage += "FORM"+RC sMessage += "PRINT"+RC
bufMessage est un Buffer = sMessage SocketEcrit("SocketName",sMessage) |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 125 messages Popularité : +5 (5 votes) |
|
Posté le 28 décembre 2018 - 22:40 |
Bonjour Kaisso,
Le logo est effectivement stocké dans l'imprimante.
Nous sommes passés par les utilitaires « Zebra Setup Utilities » et « Zebra Font Downloader » disponibles sur le CD-Rom livré avec l’imprimante pour formater la zone mémoire et enregistrer le logo.
Le logo a été converti en PCX car si je me souviens bien, c'était le seul format accepté par l'imprimante.
Bon dèv. A+ |
| |
| |
| | | |
|
| | |
| |
Posté le 31 décembre 2018 - 09:01 |
Bonjour, Multipass merci pour votre réponse, j'ai bien compris que l'image doit être enregistrée dans l'imprimante. Mais pour imprimer une image non enregistrée comme une signature de client par exemple, comment je pourrais faire ? Avez vous une idée svp ? j'ai trouvé une piste, c'est de convertir l'image en Hexa et le passer par socket. C'est faisable ou pas ? Merci. |
| |
| |
| | | |
|
| | | | |
| | |
| | |
| |
|
|
|