Impression en EPL sur imprimante ZEBRA en USB

Mgiv64 Messages postés 18 Date d'inscription jeudi 10 avril 2003 Statut Membre Dernière intervention 1 mars 2011 - 2 déc. 2008 à 13:17
Whismeril Messages postés 19026 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 20 avril 2024 - 6 juil. 2017 à 09:00
Bonjour à tous,

Je suis en train d'essayer de faire passer du code EPL sur une imprimante ZEBRA en vue d'imprimer des codes barres.
Je suis sur VB 6 et je dispose d'une Zebra LP2844

Voici où j'en suis actuellement :

1 - Je parviens à imprimer du texte et/ou des codes barres avec la fonction print de cette façon :

Public Sub LabelZebraTest()
    Dim strDescShort As String
   
    strDescShort = "Coca 25 cl"
       
    Dim prnX As Printer
    For Each prnX In Printers
        Select Case prnX.DeviceName
            Case "Zebra  LP2844"
                Set Printer = prnX
                Exit For
        End Select
    Next

    Printer.ScaleMode = 6

    Printer.FontName = "Arial"
    Printer.FontSize = 10
    Printer.FontBold = False
    Printer.FontUnderline = False
    Printer.CurrentX = 10
    Printer.Print strDescShort
                     
    Printer.EndDoc

End Sub

Quand je remplace la police "Arial" par une police "3 of 9 barcode" ou "EAN 13" je parviens aussi à imprimer des codes barres. SAUF QUE... cette solution ne me convient pas, car elle requiert que chaque utilisateur du programme doive préalablement installer les polices TTF correspondantes aux codes barres. Deuxièmement, le code EAN13 requiert une syntaxe et une structure bien spécifique à respecter scrupuleusement et qui est assez lourde à gérer. Troisièmement, l'imprimante peut gérer tout ces codes barres de façon autonome grâce au langage EPL.

2 - Impression code barre avec le langage EPL

A travers un petit outils très simpliste founis avec le drivers d'impression, je peu envoyer des commandes EPL à l'imprimante.

ces trois lignes :

N
B10,10,0,E30,2,2,150,B,"132465798000"
P1

Me donne un jolis code barre en EAN 13, avec une structure respectée, un numéro de vérification calculé par l'imprimante, bref le bonheur!...

3 - Tentative d'envoyer du EPL à mon imprimante :

J'ai trouvé ce code sur le net :

Private Sub Cmdinitpro_Click()
MSComm1.CommPort = 1
MSComm1.Settings = "9600,N,8,1"
MSComm1.PortOpen = True
MSComm1.Output = "N" + Chr$(10)
MSComm1.Output = "Q191,24+0" + Chr$(10)
MSComm1.Output = "q224" + Chr$(10)
MSComm1.Output = "A4,171,0,1,1,1,N,""init""" + Chr$(10)
MSComm1.Output = "P1" + Chr$(10)
MSComm1.PortOpen = False
End Sub

Alors c'est bien ... sauf que... mon imprimante est en USB et non en serial ou LTP1....

4 - Et si je tentais quand même....

Private Sub Command1_Click()
    Dim prnX As Printer
    For Each prnX In Printers
        Select Case prnX.DeviceName
            Case "Zebra  LP2844"
                Set Printer = prnX
                Exit For
        End Select
    Next

    Printer.Print "N"
    Printer.Print "B10,10,0,E30,2,2,150,B,'13221'"
    Printer.Print "P1"
    Printer.EndDoc
   
End Sub

Et voici enfin donc mon problème... quand j'exécute ce code, bien évidement, l'imprimante m'imprime le code EPL mais ne l'interprète pas...

Ma question est donc : Savez-vous comment envoyer du EPL sur une ZEBRA en USB depuis un programme VB6 ?

Un tout grand merci à toute personne pouvant me donner une piste, si petite soit-elle.

Merci ,

Pierre
A voir également:

13 réponses

Mgiv64 Messages postés 18 Date d'inscription jeudi 10 avril 2003 Statut Membre Dernière intervention 1 mars 2011
4 déc. 2008 à 16:42
UP!

Personne n'a de piste :'( :'(
0
camerling Messages postés 3 Date d'inscription lundi 30 août 2004 Statut Membre Dernière intervention 16 décembre 2008
10 déc. 2008 à 10:31
Salut Mgiv64,

J'en suis rendu à peu près au même stade que vous coté VB6/Zebra.

Je me demande si je vais pas utiliser Thermal Label SDK (mais en VB.net) de Neodynamics ou NiceLabel Driver/Dev ... ou encore CodeSoft 8 ?

Pourtant je voudrais, comme vous, m'affanchir d'une dll supplémentaire et payante !

(j'ai une LP2844 aussi).
 
Je continue à chercher sur les forums USA ...

Envoyez moi un mess privé, nous pourrons partager nos travaux si vous voulez.

A+
Emmanuel.
 
0
camerling Messages postés 3 Date d'inscription lundi 30 août 2004 Statut Membre Dernière intervention 16 décembre 2008
10 déc. 2008 à 11:54
Heu ... et le code ESCAPE (chr$(27) ou 1B en hexa) il est où dans tes test vers le port usb ?

A+

 
0
Mgiv64 Messages postés 18 Date d'inscription jeudi 10 avril 2003 Statut Membre Dernière intervention 1 mars 2011
15 déc. 2008 à 09:29
Merci à vous pour vos réponses.

Je serais ravis que nous puissions voir tout ça ensemble.

Nous n'avons peut-être pas abordé le problème de la même façon, mais de mon point de vue je doute qu'il y ait besoin d'avoir recours à quelque dll payantes que se soit. (sinon je pense que Zebra doit fortement revoir sa stratégie marketing...)

comme je le décris à l'étape numéro 2, j'arrive à lancer une impression de codes barres à travers l'utilitaire intégré aux drivers officiels (Zebra Universal Drivers).
Il me semble normal qu'il devrait être possible d'envoyer ce même code depuis un programme VB6/VB.NET.
La seule chose, c'est que le code que j'envoie est interprété comme de l'ASCII, je ne sais pas suffisamment d'expérience que pour savoir comme spécifier que je veux envoyé les données "en brutte".

Si vous voulez tester l'étape 2 :

1 - Dans les propriété de l'imprimante du panneau de config.
2 - Dans l'onglet "Printer"
3 - Dans "Advanced"
4 - Tools
5 - Dans "Direct command for printer" taper les commandes que je renseigne à l'étape 2 de mon premier message, une après l'autre, en cliquant sur Send après chaque commande (NE PAS faire ENTER)

Je vous envoi mon adresse email en MP.

Merci,

Pierre
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
camerling Messages postés 3 Date d'inscription lundi 30 août 2004 Statut Membre Dernière intervention 16 décembre 2008
16 déc. 2008 à 08:53
Pierre,

Le fait que l'imprimante n'interprète pas n'est il pas dû au fait qu'il n'y a pas de code 'Escape' (comme précisé dans le manuel Zebra, il y a une petite explication sur le code 'Escape' (27!)
Avez vous essayé d'ajouter 1B en Hexa ou chr$(27) dans votre code VB6 en début de ligne de commande ?

A+

Emmanuel.
0
Mgiv64 Messages postés 18 Date d'inscription jeudi 10 avril 2003 Statut Membre Dernière intervention 1 mars 2011
16 déc. 2008 à 11:04
Merci de votre réponse,

    Printer.Print Chr$(27) + "N"
    Printer.Print Chr$(27) + "B10,10,0,E30,2,2,150,B,""132465798000"""
    Printer.Print Chr$(27) + "P1"

même résultat, mais avec un caractère illisible au début de chaque ligne...
0
jcv1974 Messages postés 1 Date d'inscription vendredi 6 mars 2009 Statut Membre Dernière intervention 13 mars 2009
13 mars 2009 à 16:44
Bonjour, j'ai un peu le même problème que vous.
J'ai une ZEBRA TLP3842 en TCPIP, et je voudrais imprimer en vba.

La seuke commande que j'ai réussi à passer est "EI", mais pour imprimer du texte simplement c'est impossible.

Je pense qu'il faudrait réussir à concatener la touche ENTER dans le senddata du winsock, mais là rien ne part.

Si quelqu'un a quelque chose je suis preneur.

Merci
0
waspy59 Messages postés 189 Date d'inscription mercredi 24 novembre 2004 Statut Membre Dernière intervention 15 mai 2013
17 avril 2009 à 21:28
essayer de mettre comme drivers "text only".....normalement ca fonctionne
0
Mgiv64 Messages postés 18 Date d'inscription jeudi 10 avril 2003 Statut Membre Dernière intervention 1 mars 2011
17 avril 2009 à 22:54
Bonjour Jcv1974 et Waspy59,

@ Jcv1974 : je n'ai toujours pas trouvé une solution à mon problème. En ce qui vous concerne je serais tenté de dire que vous pourriez simplement installer l'imprimante comme une imprimante réseau windows "habituelle" et sélectionner cette imprimante lors de l'impression. ça sera une couche du système d'exploitation qui se chargera de faire passer les données sur le réseau de façon transparente. Ainsi votre code conviendrait aussi bien pour une imprimante local ou réseau. Vous supprimez ainsi totalement le facteur réseau (Winsock) de votre code. Le drivers Windows s'en chargeront.... Je précise qu'en ce qui me concerne j'arrive à imprimer du texte (en VB.net), la page de test de Windows et des images (depuis Word par exemple)

@Waspy59 : Que voulez vous dire exactement ? vous suggérer que nous installions l'imprimante comme étant une "imprimante texte standard" dans windows ?
En fait, actuellement elle est installée avec les drivers zebra. Dans ces drivers, il y a un petit utilitaire contenant une zone de texte et un bouton. Lorsque je colle du code EPL dans cette zone et que je valide à l'aide du bouton, l'imprimante interprete correctement le code EPL. Tout me laisse donc croire que je ne dois rien changer à la configuration de l'imprimante et que la seule chose qui bloque dans mon cas est de trouver une façon en VB.NET de faire comprendre à cette imprimante que je ne suis envoie pas du ASCII mais bien du code EPL.... je suis certain que l'astuce doit être basique. genre trouver le bon caractère d'"Escape"....

++

Mgiv64
0
mrwhat49 Messages postés 1 Date d'inscription mercredi 22 juin 2005 Statut Membre Dernière intervention 23 avril 2009
23 avril 2009 à 19:47
Bonjour, vous parlez d'un petit utilitaire contenant une zone de texte et un bouton.
Pourriez vous m'indiquer ou vous l'avez trouvé ?

j'ai cherché dans le cd mais je n'ai pas trouvé.

Cordialement,
MrWhat49
0
Mgiv64 Messages postés 18 Date d'inscription jeudi 10 avril 2003 Statut Membre Dernière intervention 1 mars 2011
23 avril 2009 à 23:27
Bonjour,

1 - Dans les propriété de l'imprimante du panneau de config.
2 - Dans l'onglet "Printer"
3 - Dans "Advanced"
4 - Tools
5
- Dans "Direct command for printer" taper les commandes que je
renseigne à l'étape 2 de mon premier message, une après l'autre, en
cliquant sur Send après chaque commande (NE PAS faire ENTER)

Par exemple : envoyez ces commandes EPL à l'imprimante :

ces trois lignes (ligne par ligne, bouton SEND après chaque ligne) :

N
B10,10,0,E30,2,2,150,B,"132465798000"
P1

vous aurez  un jolis code barre en EAN 13, avec une structure respectée, un
numéro de vérification calculé par l'imprimante...
0
aittigga Messages postés 3 Date d'inscription samedi 17 octobre 2009 Statut Membre Dernière intervention 10 juillet 2013
25 nov. 2011 à 18:45
Bonjour a tous,
j'ai un problème avec l'impression des Labels avec LP 2844 je cherche comment jouer sur la Taille des Caractère?
Merci
0
Bonjour , toutes les zebras font par défaut du ZPL mais pas forcément du EPL : il faut vérifier cette configuration sur l'imprimante
0
Whismeril Messages postés 19026 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 20 avril 2024 656
6 juil. 2017 à 09:00
Bonjour 9 ans après, est ce bien utile?
0
Rejoignez-nous