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

Outils Delphi Discussion :

Imprimante à ticket EPSON


Sujet :

Outils Delphi

  1. #1
    Membre à l'essai
    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2010
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2010
    Messages : 59
    Points : 19
    Points
    19
    Par défaut Imprimante à ticket EPSON
    Bonjour,

    Avant toute chose, si je ne suis pas au bon endroit, excusez-moi et guidez-moi sur le bon sujet

    Sachez que cela fait près d'une semaine que je navigue sur le net à la recherche de mon bonheur.
    Je ne viens donc pas comme une fleur exiger des réponses.

    J'ai réussi à trouver beaaaaucoup d'informations, mais je n'arrive pas à tout mettre ensemble...
    Et comme ce sont très souvent de vieux sujets de conversations (certains datant de 2005 ), je ne peux pas vraiment espérer avoir de solutions à moins d'en créer un moi-même.

    Je ne vais pas m'amuser à mettre ici tous les liens que j'ai visité, on s'en sortirait plus..Donc, je vous expose ma demande en essayant de préciser ce que j'ai compris.

    Je m'explique...

    Je viens de créer un programme destiné à générer et imprimer des tickets de caisse.
    J'ai donc une sorte de "prévisualisation" du ticket de caisse dans un TMemo et j'aimerais tout simplement l'imprimer sur mon imprimante.

    C'est au sujet de l'impression que je ne parviens pas à comprendre..

    J'ai une imprimante à tickets de caisse Epson TM-T88V branchée à un ordinateur ainsi qu'une caisse branchée à l'imprimante.

    J'ai lu le manuel technique de long en large, et j'ai bien trouvé des commandes mais je n'ai aucune idée de comment les utiliser avec DELPHI.
    J'ai vu sur internet qu'imprimer avec une epson était plus compliqué qu'avec d'autres imprimantes, qu'il y avait une norme particulière à utiliser "Opos".

    Jusqu'à présent, j'ai réussi à rassembler pas mal d'informations sur le sujet, mais chaque fois, je n'ai que des "morceaux" de réponses.



    Je suis sincèrement désolée de faire un "re-post" à ce sujet-là mais si quelqu'un pouvait m'expliquer correctement de manière plus ou moins complète comment je dois faire..
    Je suis preneuse de conseils, exemples de code, sujets à lire qui pourraient m'aider...

    Merci d'avance..

  2. #2
    Membre confirmé
    Homme Profil pro
    Enseignant
    Inscrit en
    Août 2008
    Messages
    666
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2008
    Messages : 666
    Points : 643
    Points
    643
    Par défaut
    Salut,

    Peut-être ce lien t'aidera à résoudre ton soucis:

    http://ch.runcode.us/q/checking-prin...vers-in-delphi

    Bonne chance

    Nabil

  3. #3
    Membre émérite

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2007
    Messages
    3 388
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 388
    Points : 2 999
    Points
    2 999
    Par défaut
    as-tu essayé tout simplement de définir un driver pour l'objet TPrinter de Delphi, puis d'utiliser la canvas de cet objet printer ? Si mes souvenirs sont bons, j'avais fais comme ça pour un cas similaire.

    http://www.delphibasics.co.uk/RTL.as...xpandCode1=Yes

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

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 695
    Points : 13 133
    Points
    13 133
    Par défaut
    Il n'y a aucune complication à utiliser une TM-T88. Depuis sa première version, elle est capable d'imprimer en graphique comme n'importe quelle imprimante (mais lentement).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Printer.Canvas.BeginDoc;
    Printer.Canvas.TexoutOut(100, 100, 'Hello world');
    Printer.Canvas.EndDoc;
    OPOS est un standard de communication (OLE for Point of Sale) mais n'est pas requis. Par contre OPOS ADK d'Epson est obligatoire puisqu'il contient les pilotes d'imprimante

    Travailler avec OPOS permet de piloter un tiroir-caisse, mais aussi (et surtout) un afficheur. S'il n'y a pas d'afficheur, il est possible de piloter l'imprimante et le tiroir-caisse en envoyant simplement du texte dans une police déterminée : control.
    Pour imprimer du texte à pleine vitesse, soit en mode caractères et non graphique, il suffit de choisir une police d'imprimante, par exemple FONTA11. Ce sont des polices qui permettent entre 40 et 80 caractères par ligne.

    Un exemple

  5. #5
    Membre à l'essai
    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2010
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2010
    Messages : 59
    Points : 19
    Points
    19
    Par défaut
    Waouw !

    Merci de vos réponses.

    J'ai été voir ce que ça donnait.
    Alors, si j'ai bien compris, Font.size, c'est la taille de la police, Font.Name, le nom, tout simplement et donc, "control" pour le tiroir-caisse. Et TextOut, c'est le texte à imprimer ?

    Si c'est le cas, je dois donc traduire ce que j'ai dans mon mémo pour que l'imprimante puisse y lire sachant que j'ai des éléments centrés, et d'autres à gauche ?

    D'ailleurs, Papy214 et AndNotor, ce que vous m'avez montré est au final la même chose, je crois.
    Nabil, ça m'a l'air un peu compliqué ce que tu m'as montré.
    J'ai étudié ça un peu plus profondément, mais j'ai de la peine

  6. #6
    Expert éminent sénior
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Points : 28 445
    Points
    28 445
    Par défaut
    J'utilise cette imprimante sous Delphi, comme le précise Andnotor il n'est pas nécessaire d'utiliser OPOS.

    voici un extrait de ce que j'utilise

    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
     
    const
      CRLF = 20;
    var
      Str: string;
      ts : TSize;
      y  : Integer;
    {$IFDEF NO_PRINTER}
    var
      Bitmap: TBitmap;
      PageWidth : Integer;
    {$ENDIF}
    begin
    {$IFDEF NO_PRINTER}
      PageWidth := 275;
      Bitmap := TBitmap.Create;
      Bitmap.Width := PageWidth;
      Bitmap.Height := 1000;
      with Bitmap do
      begin
    {$ELSE}
      with Printer do
      begin
        Title := 'Commande n°' + IntToStr(Number);
        BeginDoc;
    {$ENDIF}
        with Canvas do
        begin
          y := 0;
          Font.Name := 'Arial';
          Font.Size := 8;
        // Adresse
          Str := 'XXXXXXXXXXXXX';
          Font.Style := [fsBold];
          ts := TextExtent(Str);
          TextOut((PageWidth - ts.cx)  div 2, y, Str);
          Inc(y, ts.cy);
        // Logo : TBitmap
          Draw((PageWidth - Logo.Width) div 2, y + CRLF, Logo);
          Inc(y, Logo.Height + 2 * CRLF);
        // Tél:
          Font.Size := 9;
          Str := 'Tél: XXXXXXXX';
          TextOut(0, y, Str);
          Font.Style := [];
          Str := FormatDateTime('dd/mm/yyyy hh:nn', Now);
          ts := TextExtent(Str);
          TextOut(PageWidth - ts.cx, y, Str);
    ...
        end;
    {$IFDEF NO_PRINTER}
        SaveToFile('PRINTER.BMP');
      end;
      Bitmap.Free;
    {$ELSE}
        EndDoc;
      end;
    {$ENDIF}
    end;
    avec le IFDEF NO_PRINTER je peux tester mon impression dans un simple Bitmap (quand je n'ai pas d'imprimante sous la main)

    or donc PageWidth donne la largeur du papier, avec TextExtent j'ai les dimensions du texte, il ne reste plus qu'à calculer la position selon que le texte doit être à gauche, à droite ou centré
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

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

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 695
    Points : 13 133
    Points
    13 133
    Par défaut
    TextOut(0, 0, 'A') dans la police FontA11 va imprimer A.
    TextOut(0, 0, 'A') dans la police Control (taille 10) va ouvrir le tiroir-caisse (pas d'impression).

    Il semblerait que la version V soit aussi rapide en True Type qu'en police d'imprimante. Ce n'était pas le cas des anciennes versions sur lesquelles une ligne graphique prenait presque 1/2 seconde à être imprimée. Par soucis de compatibilité et de vitesse, je me limiterais aux polices FontAxx.

  8. #8
    Expert éminent sénior
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Points : 28 445
    Points
    28 445
    Par défaut
    Citation Envoyé par Andnotor Voir le message
    TextOut(0, 0, 'A') dans la police FontA11 va imprimer A.
    TextOut(0, 0, 'A') dans la police Control (taille 10) va ouvrir le tiroir-caisse (pas d'impression).

    Il semblerait que la version V soit aussi rapide en True Type qu'en police d'imprimante. Ce n'était pas le cas des anciennes versions sur lesquelles une ligne graphique prenait presque 1/2 seconde à être imprimée. Par soucis de compatibilité et de vitesse, je me limiterais aux polices FontAxx.
    ah excellent, je ne savais pas que le tiroir caisse se branchait sur l'imprimante ^^ petite question "Control" c'est juste un mot clé utilisé par l'imprimante ou c'est une vraie police installée ?
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  9. #9
    Membre à l'essai
    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2010
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2010
    Messages : 59
    Points : 19
    Points
    19
    Par défaut
    Merci infiniment pour toutes vos réponses !

    J'ai déjà commencé à regarder mais je verrais plus en détail demain !
    Je vous tiens au courant.

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

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 695
    Points : 13 133
    Points
    13 133
    Par défaut
    Citation Envoyé par Paul TOTH Voir le message
    "Control" c'est juste un mot clé utilisé par l'imprimante ou c'est une vraie police installée ?
    Oui, c'est une police installée

  11. #11
    Membre à l'essai
    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2010
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2010
    Messages : 59
    Points : 19
    Points
    19
    Par défaut
    Excusez-moi si je répondrais un peu plus tardivement au sujet de l'impression.

    En effet, je me suis rendue compte que je devais changer le façon de fonctionner de mon programme (supprimer la base de données)..
    Et j'ai d'ores et déjà un problème à régler.
    Mais je reviendrais gérer l'impression de mon programme dés que j'aurais réglé le dit problème !

  12. #12
    Membre à l'essai
    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2010
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2010
    Messages : 59
    Points : 19
    Points
    19
    Par défaut
    Mon problème est réglé. Merci infiniment, d'ailleurs, vous êtes géniaux !

    Me revoici donc sur l'impression.

    Paul Toth, le "logo" est une simple image qui se trouve sur le programme ?
    J'ai du mal à comprendre la structure de ces lignes de code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    TextOut((PageWidth - ts.cx)  div 2, y, Str);
     
    Draw((PageWidth - Logo.Width) div 2, y + CRLF, Logo);
    Inc(y, Logo.Height + 2 * CRLF);
     
    TextOut(PageWidth - ts.cx, y, Str);
    Et je ne comprend pas non plus le "CRLF" ?

  13. #13
    Expert éminent sénior
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Points : 28 445
    Points
    28 445
    Par défaut
    Citation Envoyé par MélanieS Voir le message
    Mon problème est réglé. Merci infiniment, d'ailleurs, vous êtes géniaux !

    Me revoici donc sur l'impression.

    Paul Toth, le "logo" est une simple image qui se trouve sur le programme ?
    J'ai du mal à comprendre la structure de ces lignes de code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    TextOut((PageWidth - ts.cx)  div 2, y, Str);
     
    Draw((PageWidth - Logo.Width) div 2, y + CRLF, Logo);
    Inc(y, Logo.Height + 2 * CRLF);
     
    TextOut(PageWidth - ts.cx, y, Str);
    Et je ne comprend pas non plus le "CRLF" ?
    TextOut et Draw sont des méthodes de l'objets Canvas (voir le with en début de code), CRLF est une constante déclarée en début de code.

    donc les lignes ci-dessus indiquent
    - Centrer le texte contenu dans "Str" en "(LargeurPage - largeurText)/2, Y
    - Dessiner le TBitmap logo, en "(LargeurPage - LargeurLogo) /2, Y + 20
    - Incrémenter Y de HauteurLogo + 2 * 20
    - Afficher (à droite) le texte contenu dans "Str" en "LargeurPage - LargeurText", Y
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  14. #14
    Membre à l'essai
    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2010
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2010
    Messages : 59
    Points : 19
    Points
    19
    Par défaut
    Je te remercie de ta réponse...

    Mais je ne parviens toujours pas à comprendre pour le logo.
    C'est un composant image que tu as appelé logo ?

    J'ai essayé de bidouiller un peu pour y mettre mes informations, mais ça ne sauvegarde rien.

  15. #15
    Expert éminent sénior
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Points : 28 445
    Points
    28 445
    Par défaut
    Citation Envoyé par MélanieS Voir le message
    Je te remercie de ta réponse...

    Mais je ne parviens toujours pas à comprendre pour le logo.
    C'est un composant image que tu as appelé logo ?

    J'ai essayé de bidouiller un peu pour y mettre mes informations, mais ça ne sauvegarde rien.
    logo est un TBitmap, il peut être lu depuis un fichier, mais en effet dans mon application j'ai un TImage "PrintLogo" invisible et je fais un Logo := PrintLogo.Picture.Bitmap;
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  16. #16
    Membre à l'essai
    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2010
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2010
    Messages : 59
    Points : 19
    Points
    19
    Par défaut
    Bon, alors là...

    Je ne comprend pas.
    J'ai réussi l'histoire du logo, mais ça n'enregistre aucun bitmap....

  17. #17
    Expert éminent sénior
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Points : 28 445
    Points
    28 445
    Par défaut
    Citation Envoyé par MélanieS Voir le message
    Bon, alors là...

    Je ne comprend pas.
    J'ai réussi l'histoire du logo, mais ça n'enregistre aucun bitmap....
    ?! je n'ai pas compris...

    1. place une TImage sur la fiche
    2. charge un Bitmap dans sa propriété Picture
    3. place un bouton sur la fiche
    4. lance le programme avec ceci dans Button1Click

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    uses Printers;
     
    procedure TForm1.Button1Click(Sender: TObject);
    begin
      Printer.PrinterIndex := Printer.Printers.IndexOf('EPSON TM-T88V Receipt');
      Printer.BeginDoc;
      Printer.Canvas.Draw(10, 10, Image1.Picture.Bitmap);
      Printer.EndDoc;
    end;
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  18. #18
    Expert éminent sénior
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Points : 28 445
    Points
    28 445
    Par défaut
    Citation Envoyé par Andnotor Voir le message
    Oui, c'est une police installée
    bon je ne l'ai pas dans la liste des polices en tout cas

    je viens de faire deux tests, mais comme je n'ai pas de tiroir caisse sous la main je sais pas si ça fonctionne ^^

    button2 m'imprime une ligne vierge et coupe le papier (c'est automatique)

    button3 ne fait rien...mais ouvre-t-il le tiroir ?

    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
     
    procedure TForm1.Button2Click(Sender: TObject);
    begin
      Printer.PrinterIndex := Printer.Printers.IndexOf('EPSON TM-T88V Receipt');
      Printer.BeginDoc;
      Printer.Canvas.Font.Name := 'control';
      Printer.Canvas.Font.Size := 10;
      Printer.Canvas.TextOut(0, 0, 'A');
      Printer.EndDoc;
     
    end;
     
    procedure TForm1.Button3Click(Sender: TObject);
    type
       TStrucPrinter = record
         bufl: Word;
         buff: array[0..4] of Char;
       end;
    var
      mode: Integer;
      buff: TStrucPrinter;
    const
      fc1 = #27'p07y'; // 27,112,48,55,121   http://www.dhpos.com/popopen.htm
    begin
      Printer.PrinterIndex := Printer.Printers.IndexOf('EPSON TM-T88V Receipt');
     
      mode := PASSTHROUGH ;
      if Escape(Printer.Handle, QUERYESCSUPPORT, sizeof(mode), @mode,nil) = 0 then
        Exit;
     
      Printer.BeginDoc;
      buff.bufl := 5;
      buff.buff := fc1;
      Escape(Printer.Handle, PASSTHROUGH, 0, @buff, nil);
      Printer.EndDoc;
    end;
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

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

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 695
    Points : 13 133
    Points
    13 133
    Par défaut
    Je ne la vois pas non plus sous Windows/Fonts (XP) mais elle apparaît bien dans une énumération des polices (j'utilise l'ancien driver tdr161).
    Je n'ai pas non plus de tiroir, mais le principe a été confirmé comme fonctionnel ici et apparait également dans cette doc Epson page 6 et 7.

  20. #20
    Expert éminent sénior
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Points : 28 445
    Points
    28 445
    Par défaut
    Citation Envoyé par Andnotor Voir le message
    Je ne la vois pas non plus sous Windows/Fonts (XP) mais elle apparaît bien dans une énumération des polices (j'utilise l'ancien driver tdr161).
    Je n'ai pas non plus de tiroir, mais le principe a été confirmé comme fonctionnel ici et apparait également dans cette doc Epson page 6 et 7.
    bon j'ai trouvé une autre séquence : <Esc>i,null qui active la découpe et ça fonctionne, je suppose donc que l'autre aussi

    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
     
    procedure TForm1.FormCreate(Sender: TObject);
    var
      Index: Integer;
    begin
      ComboBox1.Items.Assign(Printer.Printers);
      Index := ComboBox1.Items.IndexOf('EPSON TM-T88V Receipt');
      if (Index < 0) and (ComboBox1.Items.Count > 0) then
        Index := 0;
      ComboBox1.ItemIndex := Index;
    end;
     
    procedure TForm1.Button3Click(Sender: TObject);
    const
      cmd: record
        len: Word;
        esc: array[0..4] of Char;
      end = (
        len: 5;
        esc: #27'p07y' // <Esc>p0, t1, t2  : Drawer Kick
      );
    begin
      Printer.PrinterIndex := ComboBox1.ItemIndex;
      Printer.BeginDoc;
      Escape(Printer.Handle, PASSTHROUGH, 0, @cmd, nil);
      Printer.EndDoc;
    end;
     
    procedure TForm1.Button4Click(Sender: TObject);
    const
      cmd: record
        len : Word;
        esc : array[0..2] of Char;
      end = (
        len : 3;
        esc : #27'i'#0 // <Esc>i, null : cutter activation
      );
    begin
      Printer.PrinterIndex := ComboBox1.ItemIndex;
      Printer.BeginDoc;
      Escape(Printer.Handle, PASSTHROUGH, 0, @cmd, nil);
      Printer.EndDoc;
    end;
    EDIT: et pour la route, impression d'un code barre CODE39
    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 TForm1.Button5Click(Sender: TObject);
    const
      cmd: record
        len : Word;
        esc : array[0..14] of Char;
      end = (
        len : 15;
        esc : #29'h'#255           // <GS>h, height           : BarCode height 1..255
            + #29'k'#4'*WIKI39*'#0 // <GS>k, mode, BarCode, 0 : Print barCode, 4 = CODE39
      );
    begin
      Printer.PrinterIndex := ComboBox1.ItemIndex;
      Printer.BeginDoc;
      Escape(Printer.Handle, PASSTHROUGH, 0, @cmd, nil);
      Printer.EndDoc;
    end;
    voir doc EPSON
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

Discussions similaires

  1. Partage d'une imprimante ticket
    Par JP.NUAGE dans le forum Windows Serveur
    Réponses: 2
    Dernier message: 22/07/2008, 01h04
  2. Impression avec une imprimante à ticket de caisse
    Par freud dans le forum Langage
    Réponses: 2
    Dernier message: 24/04/2008, 13h50
  3. Réponses: 2
    Dernier message: 21/03/2008, 09h16
  4. Imprimer sur Imprimante ticket
    Par clo5000 dans le forum Access
    Réponses: 5
    Dernier message: 08/03/2008, 07h44
  5. Débutant : performances imprimantes ticket
    Par OlivierC69 dans le forum Access
    Réponses: 1
    Dernier message: 03/08/2006, 13h27

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