|
Convertir une image jpg en zpl avec Windev Mobile Android |
Started by Thomas, Jun., 10 2025 3:28 PM - 1 reply |
| |
| | | |
|
| |
Posted on June, 10 2025 - 3:28 PM |
Bonjour,
Nous avons une application Android qui permet d’éditer des tickets de caisse sur une imprimante ZQ600 de Zebra via le Bluetooth. Le principe est simple : L'opérateur fait signer le reçu sur son terminal et un ticket de caisse est imprimé via une instruction en ZPL. Tout ceci fonctionne à merveille.
Maintenant, là où ça se corse et où j'ai besoins d'aide c'est d’intégrer sur le ticket de caisse la signature. Quand on signe sur l'application, un fichier .jpg est créé. Il faut que je transforme ce fichier .jpg en zpl pour pouvoir l'imprimer.
J'ai passé un moment à éplucher sites et forums pour trouver une solution. J'ai bien trouvé des API mais c'est payant... et les différents scripts JAVA mais les packages qu'ils utilisent n'existent pas sous Android et l'intégration de JAVA dans Windev c'est pas vraiment ma tasse de thé mais on apprend tous les jours...
Est ce que quelqu'un peut m'aider ? |
| |
| |
| | | |
|
| | |
| |
Posted on June, 13 2025 - 9:42 AM |
J'ai trouvé une solution que je vous partage. J'espère que ça servira à certains.
Procedure ImageJPEGVersZPL(sFichierImage)
ImageVersZPL est une chaîne = "" img est une Image = dChargeImage(sFichierImage) SI img = Null ALORS Info("Impossible de charger l'image.") RENVOYER "" FIN
img.ModifieTSL(00,-100,0)
largeur est un entier = img.Largeur hauteur est un entier = img.Hauteur octetsParLigne est un entier = (largeur + 7) / 8 totalOctets est un entier = octetsParLigne * hauteur
bufHexa est une chaîne = ""
POUR y = 0 _À_ hauteur - 1 oct est un entier = 0 bit est un entier = 0 POUR x = 0 _À_ largeur - 1 pixel est un entier = dPixelCouleur(img, x, y) r est un entier = RVBRouge(pixel) g est un entier = RVBVert(pixel) b est un entier = RVBBleu(pixel) lum est un entier = (r + g + b) / 3 estNoir est un booléen = (lum < 128) SI estNoir ALORS oct = oct + Puissance(2, 7 - bit) FIN bit += 1 SI bit = 8 ALORS bufHexa += NumériqueVersChaîne(oct,"02X") oct = 0 bit = 0 FIN FIN SI bit > 0 ALORS bufHexa += NumériqueVersChaîne(oct,"02X") FIN FIN
ImageVersZPL += "^FO50,50^GFA," + totalOctets + "," + totalOctets + "," +octetsParLigne + "," + bufHexa + "^FS"
RENVOYER ImageVersZPL |
| |
| |
| | | |
|
| | | | |
| | |
|