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
    Candidat au Club
    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
    Points : 2
    Points
    2
    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 812
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 812
    Points : 13 526
    Points
    13 526
    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 204
    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 204
    Points : 41 449
    Points
    41 449
    Billets dans le blog
    63
    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
    Candidat au Club
    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
    Points : 2
    Points
    2
    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
    Candidat au Club
    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
    Points : 2
    Points
    2
    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 204
    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 204
    Points : 41 449
    Points
    41 449
    Billets dans le blog
    63
    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
    Points : 2
    Points
    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
    Points : 3 565
    Points
    3 565
    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
    Candidat au Club
    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
    Points : 2
    Points
    2
    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 habitué
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    340
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 340
    Points : 139
    Points
    139
    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 812
    Détails du profil
    Informations personnelles :
    Localisation : Autre

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

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

    Informations forums :
    Inscription : Novembre 2006
    Messages : 340
    Points : 139
    Points
    139
    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 sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 666
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    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 : 13 666
    Points : 25 463
    Points
    25 463
    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 !

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