IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

API, COM et SDKs Delphi Discussion :

Imprimer sur une ZEBRA 2844


Sujet :

API, COM et SDKs Delphi

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2009
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 5
    Par défaut Imprimer sur une ZEBRA 2844
    Bonjour,

    Savez vous comment imprimer avec Delphi sur une imprimante ZEBRA 2844 connecté en USB?
    J'arrive à envoyer les commandes d'impression en java mais en utilisant Delphi l'imprimante n'interprète pas les commandes.
    Exemple :
    en Java, le message est bien imprimé, mais en Delphi il affiche A500,10...
    Code Java :
    Code java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    String s =  "A500,10,1,2,1,1,N,\"TEST\"\n" +"P1\n";
    byte[] by = s.getBytes();
    DocFlavor flavor = DocFlavor.BYTE_ARRAY.AUTOSENSE;
    Doc doc = new SimpleDoc(by, flavor, null);
    job.print(doc, null);

    Code Delphi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    AssignPrn(PrintText);
    Rewrite(PrintText);
    WriteLn(PrintText,'A500,10,1,2,1,1,N,\"TEST\"\n" +"P1\n');
    Writeln(PrintText,'')}
    CloseFile(PrintText);
    Merci.

  2. #2
    Rédacteur/Modérateur
    Avatar de Andnotor
    Inscrit en
    Septembre 2008
    Messages
    5 912
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 912
    Par défaut
    Je ne sais pas à quoi servent test codes mais, les Zebra 2844 s'utilisent comme n'importe quel imprimante en dessinant ou écrivant directement sur le Printer.Canvas.

  3. #3
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 575
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 575
    Billets dans le blog
    65
    Par défaut
    Bonjour , je te souhaites la bienvenue sur le forum

    si tu veux envoyer directement du code ZPL (Zebra Printer Language) avec Delphi voici un extrait de code ici impression sur LPT1

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    procedure TLabels.ImprimerDirectClick(Sender: TObject);
    var i,n,k : Word;
        WLancement,commande : String;
        Lpt2: TextFile;
    begin
    AssignFile(Lpt2,'LPT1');
    Rewrite(Lpt2);
    WLancement:=Format('%s-%d-%d',[Data.LignesLancement.FieldByName('SAISON').asString,
                                   Data.LignesLancement.FieldByName('NUMERO').asInteger,
                                Data.LignesLancement.FieldByName('LIGNE').asInteger]);
    Writeln(Lpt2,'^XA^MCY^XZ^XA^IDLABSOFT^FS^XZ');
    Writeln(Lpt2,'^XA^LRN^FWN^CFD,24^LH0,0^CI0^PR2^MNY^MTT^MMT^MD4^PON^PMN');
    Writeln(Lpt2,'^ADN,36,30^FO37,151^FD'+WLancement+'^FS');
    Writeln(Lpt2,'^A0N,31,46^FO33,231^FD'+Commande+'^FS');
    Writeln(Lpt2,'^PQ1,0,1,Y');
    Writeln(Lpt2,'^XZ');
    CloseFile(Lpt2);

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2009
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 5
    Par défaut
    Bonjour et merci pour votre réponse rapide.

    Dans le document de programmation EPL de Zebra les commandes sont de la forme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    B500,10,1,E30,3,7,100,B,"612041600021580109"\n
           A370,10,1,4,1,1,N,"Exemple1"\n
    Alors que dans votre code c'est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
     ^XA^MCY^XZ^XA^IDLABSOFT^FS^XZ
    ^XA^LRN^FWN^CFD,24^LH0,0^CI0^PR2^MNY^MTT^MMT^MD4^PON^PMN
    ^ADN,0,30^FO37,151^FDTEST^FS
    ^A0N,31,46^FO33,231^FDCOMMANDE^FS
    ^PQ1,0,1,Y
    ^XZ
    Est ce le même langage ?

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2009
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 5
    Par défaut
    Effectivement vous utilisez le langage ZPL et non EPL, je vais vérifier si le ZPL est compatible avez la LP 2844.

  6. #6
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 575
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 575
    Billets dans le blog
    65
    Par défaut
    Citation Envoyé par zahcen Voir le message
    Effectivement vous utilisez le langage ZPL et non EPL, je vais vérifier si le ZPL est compatible avez la LP 2844.
    l'important c'était surtout l'utilisation de assignfile,rewrite,writeln,et closefile

    ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    AssignFile(Lpt2,'LPT1');
    Rewrite(Lpt2);
    Writeln(Lpt2,'B500,10,1,E30,3,7,100,B,'+Quotedstr('612041600021580109')+'\n
    A370,10,1,4,1,1,N,'+Quotedstr('Exemple1')+'\n');
    CloseFile(Lpt2);
    pourrait peut-être fonctionner dasn ton cas

    PS. Merci de mettre le code entre balise , surlignes le code et clique sur le boutton [#] , c'est plus facile à lire

  7. #7
    Candidat au Club
    Inscrit en
    Juillet 2010
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 2
    Par défaut Zebra LP 2824 Plus
    Bonjour,
    Il n'y a pas de ZPL pour le 2844.
    Moi j'utilise le Zebra LP 2824 Plus et je veux faire l'impression en java, et lorsque j'utilise le code indiqué par zahcen, l'imprimente sort le papier viege et le texte n'est pas imprimé.
    Quelqu'un pourait me dire pourquoi svp.
    Merci d'avance

  8. #8
    Membre Expert
    Avatar de LadyWasky
    Femme Profil pro
    Inscrit en
    Juin 2004
    Messages
    2 932
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 54
    Localisation : France, Hauts de Seine (Île de France)

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 932
    Par défaut
    Bon, et en passant par les API usb ? C'est pas possible ?

    Avec les composants "HID Component suite" disponibles sur cette page ( "HID Controller" )... :
    http://www.soft-gems.net/index.php?o...d=30&Itemid=33
    ...je prends le pari que c'est possible.

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2009
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 5
    Par défaut
    Bonjour,

    Il faut installer l'imprimante par défaut "Generic Text Only" de windows, et la connecter à l'imprimante Zebra via le port USB.
    Dans ce cas les commandes Zebra sont bien interprétées par l'imprimante.

  10. #10
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    340
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 340
    Par défaut
    Je remonte ce topic, qui rejoint une question que je me pose.

    Je souhaite concevoir un logiciel de design d'étiquettes en Java, et je m'interroge sur ce point : peux t on imprimer sur une imprimante du type Zebra 2844 comme on imprime dans Word, ou comme le suggèrent les posts précédents, il faut un langage particulier?

    Dans mon application, je dessinerai des zones, contenant du texte et des images, directement dans un Canvas.

    Merci pour vos conseils

  11. #11
    Rédacteur/Modérateur
    Avatar de Andnotor
    Inscrit en
    Septembre 2008
    Messages
    5 912
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 912
    Par défaut
    Aucun problème, c'est ainsi que je procède.

  12. #12
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    340
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 340
    Par défaut
    Merci pour ta réponse rapide.

    Alors, par curiosité, (je ne vais pas dire quel est l'intérêt parce que je suis sûr qu'il y en a un), quel est l'usage de ce type de langage EPL/ZPL ?

  13. #13
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 026
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 14 026
    Par défaut
    Les Zebra, avec leur format de papier particulier ce n'est pas toujours évident à gérer !

    Avec QuickReport, je l'ai utilisé, ça fonctionne ! le modèle que j'ai utilisé, il y a bien 10 ans, coupait automatiquement le ruban à la fin de l'impression (option du driver)
    J'imprimais principalement des codes barres !
    Je ne crois pas avoir de problème, en dimensionnant le TQuickReport au dimension voulu (largement fixe, hauteur variable) et en jouant sur Portrait\Paysage

    Le cas des étiquettes, tu as plusieurs solutions, soit tu as des planches A4 sur une imprimante traditionnelle de bureau, en prenant les modèles Word et un publispostage, tu peux facilement imprimé cela, même des codes-barres (via une Font), le problème c'est que si tu imprimes étiquette par étiquette, c'est ingérable (j'ai fait un outil justement, permettant d'imprimer des étiquettes sur planche en gérant les étiquettes déjà décollés)

    Avec une Zebra, c'est bien plus simple !

    Pour le ZPL, disons, que c'est plus rapide pour tout ce qui est Texte ou CodeBarre, si tu utilises les types prédéfinis, tu envoie juste le code, et non l'image, c'est bien léger !
    si tu envoie des images, bon c'est moins utile !

    Après, certains imprimantes fournissent l'écriture sur Puce électronique, je pense que c'est le genre de chose possible uniquement en ZPL !

    Par contre, ici c'est du Delphi, pas du Java !
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

Discussions similaires

  1. Imprimer sur une Zebra
    Par -Sylvain- dans le forum VBScript
    Réponses: 0
    Dernier message: 04/03/2011, 19h45
  2. Réponses: 2
    Dernier message: 31/03/2008, 14h30
  3. Imprimer sur une imprimante donnée
    Par scorpion37 dans le forum C++Builder
    Réponses: 4
    Dernier message: 09/06/2006, 11h32
  4. imprimer sur une seule page
    Par cgodefrw dans le forum Access
    Réponses: 5
    Dernier message: 12/04/2006, 16h13
  5. Réponses: 3
    Dernier message: 27/11/2005, 17h59

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo