|
FORUMS PROFESSIONNELS WINDEV, WEBDEV et WINDEV Mobile |
| | | | | |
| Débuté par g.chartier, 06 déc. 2017 14:32 - 6 réponses |
| |
| | | |
|
| |
| Posté le 06 décembre 2017 - 14:32 |
Bonjour, J'utilise un webservice qui me renvoi une étiquette en ZPL. Ma question est simple, comment imprimer cette étiquette ?
Sur des imprimantes réseaux, je n'ai pas de soucis, j'enregistre le code zpl dans un fichier que j'envoi a l'imprimante directement par ftp. (put monfichier.txt)
Mais comment windev peux gérer une impression "normal" Avec lanceappliassocier ? mais quelle appli pour afficher du zpl En passant par un état ?
Merci de m'éclairer. |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 948 messages |
|
| Posté le 06 décembre 2017 - 15:30 |
Bonjour, Tout dépend du type de connexion entre votre ordinateur et l'imprimante : - RS232 - Parallèle - USB - Ethernet (à priori ce n'est pas votre cas) ???? |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 38 messages |
|
| Posté le 06 décembre 2017 - 15:51 |
Bonjour,
Dans nos projets nous avons déporter la gestion des impressions sur un serveur. Les applications remplissent une table de demande d'impression (spool) avec le code ZPL et c'est ensuite le serveur qui traite les demandes et qui s'occupe d'envoyer les fichiers sur les imprimantes.
Sinon l'application peut aussi envoyer un fichier sur l'imprimante en FTP à l'aider des fonctions FTP de Windev.
CordialementMessage modifié, 06 décembre 2017 - 15:55 |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 261 messages |
|
| Posté le 06 décembre 2017 - 16:41 |
Oublié le ZPL ! Moi pour info, pour envoyer des impressions d'étiquette sur une GK420 :

Je fais l'envoi via socket via fichier PRN :
Fichier_Etiquette est une chaîne = fRepExe()+"\Impression_Etiquette_en_Attente\"+IdSocket+".prn" iConfigure("GK 420T") iDestination(iFichierImprimante,Fichier_Etiquette) iFenêtreAbandon(Faux) iImprimeEtat(ETIQUETTE_TRANSPORT) SocketConnecte("IMPRESSION",9100,"192.168.0.23") Données_Étiquette est une chaîne = fChargeTexte(Fichier_Etiquette) SocketEcrit("IMPRESSION",Données_Étiquette)
800 000 étiquettes par an sont éditer avec ce code et ça tourne comme une horloge !
Avantage : Je crée mes étiquettes via un état Windev et non pas par le logiciel mal conçu du fabriquant
-- Baptiste CLOART Freelance b.cloart@blv-tech.com 06.88.74.80.65 www.linkedin.com/in/cloart www.blv-tech.comMessage modifié, 06 décembre 2017 - 16:46 |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 351 messages |
|
| Posté le 06 décembre 2017 - 17:32 |
Bonjour Guillaume,
Même avec mon expérience, et je n'ai pas honte de le dire, j'utilise toujours la touche F1 et je regarde les fonctions que je pratique peu souvent voire jamais ... en général les réponses sont dans la documentation.
Je vais te livrer LE grand secret pour imprimer en ZPL mais aussi en EPL sans avoir à développer une usine à gaz (comme cité au dessus et par toi-même) pour imprimer une simple étiquette !
La première chose à faire est d'installer le driver de ton imprimante, prends celui que tu veux ... ton client pourra ainsi imprimer une étiquette depuis LibreOffice Writer par exemple en la considérant comme une imprimante banale ! Peu importe que ton imprimante soit série, parallèle, usb ou ethernet ... ça c'est le job du spool et de son driver mais pas du tiens ! Partage la si tu as besoin de t'en servir à travers ton réseau ...
La deuxième et dernière chose est d'envoyer ton code ZPL ou EPL directement dans l'imprimante en by-passant le driver ... cette commande c'est "iEscape()" et elle existe depuis la version 9. Inutile de te dire que cette commande n'est pas nouvelle !
Ton code peut donc ressembler à ça :
iRAZ() iConfigure("Ton_Imprimante") iEscape("Mon code ZPL ou EPL ou tout autre code interpréter par ton imprimante") iFinImprime()
Il est possible que tu aies besoin de convertir tes caractères accentués ... utilise "AnsiVersOem", ce qui donne ce genre de chose :
iEscape(AnsiVersOem("Mon code ZPL ou EPL avec des é,à,ç ..."))
Vu que tu arrives d'un WebService ... tu vas certainement rencontrer un problème de codage des CRLF ... il te faudra donc remplacer les Caract(13) et Caract(10) par rien ... et remplacer les " " par un CRLF mais ça, c'est selon les webservices.
Si avec ça tu ne deviens pas le maître des impressions ZPL alors je dois changer de boulot rapidement !
Et mon code ... c'est plus d'un million d'étiquettes par an chez un gros transporteur français ! Qui dit mieux ?
-- Bon développement, Patrick [3po.fr] |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 948 messages |
|
| Posté le 06 décembre 2017 - 19:02 |
Bonjour, on peut effectivement passer par différentes méthodes avec ou sans driver. Perso j'utilise les Zebra depuis 1986 et j'ai gardé l'habitude de les gérer en RS232. Cela me permet de gérer très finement l'impression. Dans une GPAO (pour un grand fabriquant d'étiquette adhésive) chaque poste de production est équipé de 2 imprimantes A300 ou DA420 (zpl) avec des étiquettes de format différents. Une de plus de 10 cm de hauteur, l'autre de 1.5 cm. Ma classe permettait en autre de détecter la hauteur de l'étiquette chargée dans chaque imprimante (pas de fichier ini et l'inversion de format ne posait pas de problème), savoir si l'étiquette est bien imprimée, de connaitre l'état...etc En plus de faire du ZPL cela permet de positionner au dot près (1/8ème de mm) la position du texte cab graphique image et c'est bien plus rapide que de passer par un driver @Patrick ALLÉMOZ : «Qui dit mieux ?» ..... "MIEUX" ..... comme disait Coluche  |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 351 messages |
|
| Posté le 07 décembre 2017 - 07:32 |
Bonjour,
> @Patrick ALLÉMOZ : «Qui dit mieux ?» ..... "MIEUX" ..... comme disait Coluche
Humour quand tu nous tiens ... ça fait toujours du bien !
@Philippe : Totalement d'accord pour ce qui est des avantages du langage natif de l'imprimante, c'est toujours beaucoup plus efficace, aussi bien en temps qu'en qualité ... encore faut-il en comprendre son langage ! Je n'ai jamais eu besoin de logiciel externe pour fabriquer une étiquette, la lecture du manuel suffit.
@Guillaume : Si tu as besoin de gérer une discussion avec l'imprimante comme le fait Philippe, le plus simple est effectivement de l'attaquer en direct et de faire la causette avec elle. Je faisais ça il y a quelques années mais j'ai abandonné cette solution avec l'évolution des imprimantes. Je n'ai jamais regardé si on pouvait avoir un retour via le spool ...
Avec un parc hétérogène d'imprimantes et très souvent un seul format d'étiquette (si j'en ai un deuxième ... je mets simplement une deuxième imprimante), je ne rencontre aucun problème du coté des utilisateurs en cas d'anomalie et heureusement vu le nombre d'imprimantes que j'ai en exploitation.
Dans mon cas, mes imprimantes sont installées sur des postes en interne directement chez l'expéditeur ... une solution passe-partout est souvent préférable vu que chaque machine est en gros différente (parc totalement hétérogène et incontrôlable).
-- Bon développement, Patrick [3po.fr] |
| |
| |
| | | |
|
| | | | |
| | |
| | |
| |
|
|
|