Impression en EPL sur imprimante ZEBRA en USB

Mgiv64 18 Messages postés jeudi 10 avril 2003Date d'inscription 1 mars 2011 Dernière intervention - 2 déc. 2008 à 13:17 - Dernière réponse : Whismeril 12116 Messages postés mardi 11 mars 2003Date d'inscriptionContributeurStatut 18 octobre 2018 Dernière intervention
- 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
Afficher la suite 

Votre réponse

14 réponses

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

Personne n'a de piste :'( :'(
Commenter la réponse de Mgiv64
camerling 3 Messages postés lundi 30 août 2004Date d'inscription 16 décembre 2008 Dernière intervention - 10 déc. 2008 à 10:31
0
Merci
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.
 
Commenter la réponse de camerling
camerling 3 Messages postés lundi 30 août 2004Date d'inscription 16 décembre 2008 Dernière intervention - 10 déc. 2008 à 11:54
0
Merci
Heu ... et le code ESCAPE (chr$(27) ou 1B en hexa) il est où dans tes test vers le port usb ?

A+

 
Commenter la réponse de camerling
Mgiv64 18 Messages postés jeudi 10 avril 2003Date d'inscription 1 mars 2011 Dernière intervention - 15 déc. 2008 à 09:29
0
Merci
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
Commenter la réponse de Mgiv64
camerling 3 Messages postés lundi 30 août 2004Date d'inscription 16 décembre 2008 Dernière intervention - 16 déc. 2008 à 08:53
0
Merci
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.
Commenter la réponse de camerling
Mgiv64 18 Messages postés jeudi 10 avril 2003Date d'inscription 1 mars 2011 Dernière intervention - 16 déc. 2008 à 11:04
0
Merci
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...
Commenter la réponse de Mgiv64
jcv1974 1 Messages postés vendredi 6 mars 2009Date d'inscription 13 mars 2009 Dernière intervention - 13 mars 2009 à 16:44
0
Merci
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
Commenter la réponse de jcv1974
waspy59 190 Messages postés mercredi 24 novembre 2004Date d'inscription 15 mai 2013 Dernière intervention - 17 avril 2009 à 21:28
0
Merci
essayer de mettre comme drivers "text only".....normalement ca fonctionne
Commenter la réponse de waspy59
Mgiv64 18 Messages postés jeudi 10 avril 2003Date d'inscription 1 mars 2011 Dernière intervention - 17 avril 2009 à 22:54
0
Merci
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
Commenter la réponse de Mgiv64
mrwhat49 1 Messages postés mercredi 22 juin 2005Date d'inscription 23 avril 2009 Dernière intervention - 23 avril 2009 à 19:47
0
Merci
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
Commenter la réponse de mrwhat49
Mgiv64 18 Messages postés jeudi 10 avril 2003Date d'inscription 1 mars 2011 Dernière intervention - 23 avril 2009 à 23:27
0
Merci
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...
Commenter la réponse de Mgiv64
aittigga 3 Messages postés samedi 17 octobre 2009Date d'inscription 10 juillet 2013 Dernière intervention - 25 nov. 2011 à 18:45
0
Merci
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
Commenter la réponse de aittigga
0
Merci
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
Whismeril 12116 Messages postés mardi 11 mars 2003Date d'inscriptionContributeurStatut 18 octobre 2018 Dernière intervention - 6 juil. 2017 à 09:00
Bonjour 9 ans après, est ce bien utile?
Commenter la réponse de EmmanuelR

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.