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 :

Modifier les options d'une imprimante ticket


Sujet :

API, COM et SDKs Delphi

  1. #1
    Membre actif
    Inscrit en
    Décembre 2004
    Messages
    390
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 390
    Points : 288
    Points
    288
    Par défaut Modifier les options d'une imprimante ticket
    En attendant l'ouverture de mon tiroir-caisse connecté au port RJ11 qui peine à arriver, Je souhaiterais savoir s'il est possible de modifier les options d'une imprimante.

    Exemple : Empêcher le tiroir-caisse de s'ouvrir à l'impression d'un ticket. ça peut se faire manuellement mais je veux le faire par programme.

    Merci.

    D7, Windows 8.1, Imprimante TP-80A

  2. #2
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 038
    Points : 40 943
    Points
    40 943
    Billets dans le blog
    62
    Par défaut
    Bonjour,

    comme tout imprimante tickets cela doit pouvoir se faire via des commandes ESC, il ne m'a fallu que 2 minutes pour trouver le manuel correspondant à la TP-80
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  3. #3
    Membre actif
    Inscrit en
    Décembre 2004
    Messages
    390
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 390
    Points : 288
    Points
    288
    Par défaut
    Citation Envoyé par SergioMaster Voir le message
    Bonjour,

    comme tout imprimante tickets cela doit pouvoir se faire via des commandes ESC, il ne m'a fallu que 2 minutes pour trouver le manuel correspondant à la TP-80
    Oui, merci mais comment passer l'instruction en delphi ??

  4. #4
    Membre chevronné
    Avatar de free07
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    931
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 931
    Points : 1 909
    Points
    1 909
    Par défaut
    Citation Envoyé par akli_agha Voir le message
    Oui, merci mais comment passer l'instruction en delphi ??
    Avec une autre recherche, tu peux trouver des solutions comme décrit ici

  5. #5
    Membre actif
    Inscrit en
    Décembre 2004
    Messages
    390
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 390
    Points : 288
    Points
    288
    Par défaut
    Citation Envoyé par free07 Voir le message
    Avec une autre recherche, tu peux trouver des solutions comme décrit ici
    Nom : TP_80A.JPG
Affichages : 376
Taille : 60,4 Ko

    Comment expliquer cette commande ? Que veut dire n= 1,2,49,50 ? Et le tableau avec, apparemment 8 bits ?
    Comment la passer à l'imprimante ?

    Merci de votre aide.

  6. #6
    Membre chevronné
    Avatar de free07
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    931
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 931
    Points : 1 909
    Points
    1 909
    Par défaut
    Bonjour,

    Si j'en crois la doc, cette commande ne peut être utilisée que pour celles qui sont connectées sur le port série, c'est donc restrictif... si l'imprimante est connectée en usb, est ce que la commande fonctionnera ?

  7. #7
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 038
    Points : 40 943
    Points
    40 943
    Billets dans le blog
    62
    Par défaut
    Citation Envoyé par free07 Voir le message
    Si j'en crois la doc, cette commande ne peut être utilisée que pour celles qui sont connectées sur le port série, c'est donc restrictif... si l'imprimante est connectée en usb, est ce que la commande fonctionnera ?
    Bonjour,

    si l'imprimante est en USB alors il y a un driver, s'il y a drivers alors l'unité Printers devrait permettre d'accéder à l'imprimante et ses paramètres
    si l'imprimante est sur le port série il faut utiliser le même genre de code que dans le post pour l'ouverture du tiroir caisse (avec TComport)

    rapidement : pour la commande du tableau , en utilisant de l'Hexadécimal on passera
    x1D x72 et un octet le fameux n qui sera composé des valeurs choisies
    par exemple : x03 papier jusqu'au détecteur et pas d'ouverture tiroir caisse : explication en binaire x03=00000011 bit 0 on, bit 1 on
    ce n'est que du binaire il suffit de bien lire la doc, chaque bit de l'octet correspond à une commande, x72 correspond au type de la commande
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  8. #8
    Membre actif
    Inscrit en
    Décembre 2004
    Messages
    390
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 390
    Points : 288
    Points
    288
    Par défaut
    Merci pour votre aide.

    J'essaie d'envoyer ces paramètres via TPrinter mais ça ne donne rien. Le tiroir s'ouvre toujours !
    Voici ce que j'envoie avant d'imprimer :

    Esc := chr(29) + chr(114) + '3';

    D7, W8

  9. #9
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 038
    Points : 40 943
    Points
    40 943
    Billets dans le blog
    62
    Par défaut
    Bonjour,

    pas assez clair, indiquer simplement la commande ne me donne aucune piste pour savoir comment vous l'envoyez à l'imprimante !

    on ne sait toujours pas s'il s'agit d'une imprimante USB ou Série, comme vous indiquez que vous utilisez TPrinter je présume qu'il s'agit d'une USB mais rien ne le confirme ! un jour , au siècle dernier (dans les années 80), un chef de projet anglophone qui me formait m'a dit "don't ASS/U/ME" c'est une maxime que j'utilise souvent depuis.

    P.S. lorsque j'ai indiqué
    si l'imprimante est en USB alors il y a un driver, s'il y a drivers alors l'unité Printers devrait permettre d'accéder à l'imprimante et ses paramètres
    je n'ai jamais dit ensuite que dans ces cas là on utilisait ensuite les séquences d'échappement. De plus, qui dit séquence d'échappement dit souvent qu'il faut d'abord le chr(27) soit ESC avant le reste de la séquence. Je n'ai pas le temps, l'envie et les moyens de tester tout ça, vérifiez dans le manuel
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  10. #10
    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 430
    Points
    28 430
    Par défaut
    Citation Envoyé par SergioMaster Voir le message
    si l'imprimante est en USB alors il y a un driver, s'il y a drivers alors l'unité Printers devrait permettre d'accéder à l'imprimante et ses paramètres
    ce n'est pas tout à fait vrai.

    pour les imprimantes EPSON TM-T88V (les plus répandues si j'ai bien compris), je suis capable de détecter leur présence SANS le driver, et je propose alors de l'installer. Mais une fois le driver installé, il faut encore déclarer une imprimante dans Windows - ce que je ne fais pas puisque j'envoie directement l'impression au driver sans passer par une imprimante

    exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    var
      usb: THandle;
      nb  : Cardinal;
    begin
      usb := CreateFile('\\?\usb#vid_04b8&pid_0202#513650463573330000#{5dd901c0-bcf4-11d1-9738-008029e6a5b3}\TM', GENERIC_WRITE, 0, nil, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);
      WriteFile(usb, Str[1], Length(Str), nb, nil);
      CloseHandle(usb);
    end;
    et je fais la même chose en réseau quand elle a un port Ethernet, auquel cas il n'est même pas nécessaire de la déclarer sous Windows. Je la détecte par un broadcast UDP puis lui envoie l'impression en TCP.
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  11. #11
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 038
    Points : 40 943
    Points
    40 943
    Billets dans le blog
    62
    Par défaut
    Bonjour,

    tu as raison Paul, je me suis mal exprimé, j'aurais effectivement du dire :

    "si l'imprimante est en USB alors il y a un driver," et si ce dernier est installé, alors l'unité ........

    bref je ne me suis jamais trouvé dans le cas d'une imprimante ticket sur port USB et ton code est bien sympathique
    je ne pense pas que l'imprimante TP-80A diffère beaucoup du "standard EPSON"
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

Discussions similaires

  1. Réponses: 0
    Dernier message: 24/09/2014, 16h05
  2. Modifier les options d'une installation
    Par LapinOo dans le forum Windows
    Réponses: 0
    Dernier message: 10/10/2007, 14h23
  3. Réponses: 5
    Dernier message: 19/07/2005, 21h54
  4. MySQL Administrator : modifier les données d'une table
    Par Robinounou dans le forum Outils
    Réponses: 4
    Dernier message: 13/07/2005, 17h21
  5. [EXCEL]Modifier les marges d'une page dans Excel
    Par ms91fr dans le forum Composants VCL
    Réponses: 4
    Dernier message: 06/01/2004, 15h26

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