PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2024 → Impression ZPL directement sur Datamax O neil III
Impression ZPL directement sur Datamax O neil III
Débuté par Juju, 16 mar. 2018 17:46 - 6 réponses
Membre enregistré
87 messages
Popularité : +4 (4 votes)
Posté le 16 mars 2018 - 17:46
Bonjour,

Je cherche à imprimer une étiquette au format ZPL renvoyée par le WebService Colissimo sur une imprimante Datamax O neil III. Mais je n'arrive pas à imprimer ... cela me met une étiquette vide, j'ai parcouru le forum j'ai compilé un peu mon code avec tout ce que j'ai pu trouver sur les forums et voilà ce que ça donne :

// récupération de l'étiquette
sFacit est une chaîne = ExtraitChaîne(sXml,1,"@cxf.apache.org>",DepuisFin)
Info(sFacit)

fSauveTexte ("facit.txt", sFacit)
SI fFichierExiste("facit.txt") ALORS
sFile est une chaîne = fChargeTexte("facit.txt")
sFile = AnsiVersOem(sFile)
iConfigure(gsIMPRIMANTENom)
iEscape(sFile)
iFinImprime()
FIN


Merci d'avance
Membre enregistré
199 messages
Popularité : +14 (16 votes)
Posté le 17 mars 2018 - 10:55
Bonjour,

As-tu essayé la commande :
iImprime(sFactit)

A la place de ton IEscape()

--
Bon développement

Pierre Devillers
Membre enregistré
232 messages
Popularité : +23 (23 votes)
Posté le 18 mars 2018 - 03:32
Hello,

Ton code est bon, l'ordre iEscape est tout à fait adapté.

Le ZPL c'est le langage natif des imprimantes de marque Zebra. Les Datamax comprennent le DPL et non le ZPL.
Deux solutions : Soit tu t'amuses à traduire ton code ZPL en DPL (faisable), soit tu changes d'imprimante (plus simple).

Cordialement,

Marc.
Membre enregistré
232 messages
Popularité : +23 (23 votes)
Posté le 18 mars 2018 - 13:14
Juste pour tester le DPL, essaye d'envoyer cette séquence à l'imprimante :

sFile est une chaine = [
n
M0750
KcLW0203;
O0220
d
L
D11
A2
1X1100000930038B098122001001
Q0001
E
]
iEscape(sFile)


Ce code est censé imprimer un simple rectangle.

Cdt,

Marc.
Membre enregistré
87 messages
Popularité : +4 (4 votes)
Posté le 19 mars 2018 - 08:52
Marc LAZZARINI a écrit :
Hello,

Ton code est bon, l'ordre iEscape est tout à fait adapté.

Le ZPL c'est le langage natif des imprimantes de marque Zebra. Les Datamax comprennent le DPL et non le ZPL.
Deux solutions : Soit tu t'amuses à traduire ton code ZPL en DPL (faisable), soit tu changes d'imprimante (plus simple).

Cordialement,

Marc.


Si j'envoie directement le code ZPL ou DPL à l'imprimante via un fichier de texte depuis le paramètrage imprimante Windows j'imprime aussi bien du ZPL que du DPL.
Je vais essayer ton rectangle.
Message modifié, 19 mars 2018 - 08:52
Membre enregistré
87 messages
Popularité : +4 (4 votes)
Posté le 19 mars 2018 - 09:23
Je viens de tester ton code d'impression derrière un simple bouton, mais rien ne sort sur l'imprimante :





J'ai tenté de lancer un test sur l'imprimante juste avant et ça avait bien fonctionné pourtant.
Et encore une fois si je met le code de l'étiquette au format ZPL ou DPL dans un format d'étiquette et que j'envoie le fichier à l'imprimante directement depuis Windows mes étiquettes sortent bien...
Membre enregistré
87 messages
Popularité : +4 (4 votes)
Posté le 19 mars 2018 - 09:36
Je viens de tenter d'imprimer en DPL directement et là par contre ça fonctionne. Effectivement c'est vraiment le ZPL qui coince :

sFacit est une chaîne = sXml

fSauveTexte ("facit.txt", sFacit)

iConfigure(gsIMPRIMANTENom)
iEscape(sFacit)
iFinImprime()


Mon étiquette sort bien.
Je continue de chercher pour le DPL car je trouve l'étiquette mieux, sinon tant pis ce sera du DPL.