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

Turbo Pascal Discussion :

[TP 7] Problème paramètres d'imprimante


Sujet :

Turbo Pascal

  1. #1
    Membre éprouvé Avatar de avigeilpro
    Homme Profil pro
    Ambulancier
    Inscrit en
    Janvier 2004
    Messages
    880
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Creuse (Limousin)

    Informations professionnelles :
    Activité : Ambulancier
    Secteur : Transports

    Informations forums :
    Inscription : Janvier 2004
    Messages : 880
    Points : 971
    Points
    971
    Par défaut [TP 7] Problème paramètres d'imprimante
    Bonjour à tous.

    Je dois faire un programme assez simple :
    l'utilisateur saisit un texte et le programme doit tout simplement l'imprimer.
    Jusque là je n'avais pas de problème. Mon problème se trouve au niveau des paramètres de l'imprimante. La personne qui m'a demandé ce programme m'a fourni une impression d'écran de la page de paramètres de son ancien programme. Or je n'y connais absolument rien. Pourriez-vous me montrer comment envoyer ces paramètres à l'imprimante ?

    Voilà mon code d'impression :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    procedure Imprimer;
      begin
         TextBackground(0);
         TextColor(7);
         if NbEdition>0 then
            begin
                 For Reponse:=1 To NbEdition Do
                 Writeln(LST,Total);
            end;
      end;
    Vous aurez compris que je dois imprimer NbEdition de fois la variable Total.

    Et voilà la capture d'écran :


    Merci d'avance a tous ceux qui pourrons m'aider

  2. #2
    Membre expert
    Avatar de Eric Sigoillot
    Inscrit en
    Mars 2002
    Messages
    1 212
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 212
    Points : 3 369
    Points
    3 369
    Par défaut
    Bonjour !

    Les seuls paramètres particuliers et à faire gérer par l'imprimante sont les codes d'échappement : tu vas les reconnaîtres grâce à leur séquence qui commence toujours par le caractère #27 (ESC).

    Par exemple, ta copie d'écran comprend une initialisation avec 027 - 064. Ca signifie qu'il va falloir envoyer le code d'échappement #27#64 à l'imprimante.

    Pour envoyer ce code, c'est très simple : il suffit de faire comme si on imprimait, avec Write(Lst, Code);

    Un code d'échappement permet de contrôler l'impression : passage en gras, en italique, sauter une page, etc.

    Je t'engage à regarder le fichier PRNFLTR.PAS présent dans le répertoire BIN de Turbo Pascal 7 (disponible en téléchargement sur http://pascal.developpez.com/compilateurs/tp7/). C'est une interface assez complète pour contrôler une imprimante.

    Attention toutefois aux intéractions possibles dûes à Windows 2000 et supérieur.


    @++

  3. #3
    Membre éprouvé Avatar de avigeilpro
    Homme Profil pro
    Ambulancier
    Inscrit en
    Janvier 2004
    Messages
    880
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Creuse (Limousin)

    Informations professionnelles :
    Activité : Ambulancier
    Secteur : Transports

    Informations forums :
    Inscription : Janvier 2004
    Messages : 880
    Points : 971
    Points
    971
    Par défaut
    Quel doit être le format de la variable Code de ton exemple ? Et je dois les faire passer tous dès le début avant d'imprimer ma variable Total ?

  4. #4
    Rédacteur/Modérateur
    Avatar de M.Dlb
    Inscrit en
    Avril 2002
    Messages
    2 465
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Avril 2002
    Messages : 2 465
    Points : 4 312
    Points
    4 312
    Par défaut
    Un char, ou une string, à mon avis c'est comme tu veux Tu dois faire passer le code avant d'imprimer les caractères. Par exemple, si tu veux que la prochaine phrase que tu imprimes soit soulignée, il faut que tu passes le code correspondant au soulignement avant de passer ta phrase.

  5. #5
    Membre éprouvé Avatar de avigeilpro
    Homme Profil pro
    Ambulancier
    Inscrit en
    Janvier 2004
    Messages
    880
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Creuse (Limousin)

    Informations professionnelles :
    Activité : Ambulancier
    Secteur : Transports

    Informations forums :
    Inscription : Janvier 2004
    Messages : 880
    Points : 971
    Points
    971
    Par défaut
    D'accord, et dans mon string je met comment le code ?
    Je met ca par exempe :

    Euh d'ailleur, je dois mettre les code d'initialisation, de taille de page avant chaque impression sachant que ma variable total correspond a une page.

  6. #6
    Rédacteur/Modérateur
    Avatar de M.Dlb
    Inscrit en
    Avril 2002
    Messages
    2 465
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Avril 2002
    Messages : 2 465
    Points : 4 312
    Points
    4 312
    Par défaut
    Voilà, ca devrait fonctionner comme ça. Il faut bien sûr tout régler comme il faut avant de lancer l'impression à proprement parler

  7. #7
    Membre éprouvé Avatar de avigeilpro
    Homme Profil pro
    Ambulancier
    Inscrit en
    Janvier 2004
    Messages
    880
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Creuse (Limousin)

    Informations professionnelles :
    Activité : Ambulancier
    Secteur : Transports

    Informations forums :
    Inscription : Janvier 2004
    Messages : 880
    Points : 971
    Points
    971
    Par défaut
    Très bien, je vais essayer.
    Merci

  8. #8
    Membre expert
    Avatar de Eric Sigoillot
    Inscrit en
    Mars 2002
    Messages
    1 212
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 212
    Points : 3 369
    Points
    3 369
    Par défaut
    Ah nan, ça ne va pas fonctionner ça !
    Il ne faut pas confondre #27 et '#27'. Le premier est un caractère, le second est une chaîne de 3 caractères.

    Donc on peut écrire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    const
      Code: string = #27#64;
    On peut insérer des caractères dans le milieu, comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    var
      S: string;
    begin
      S := #27#01'ABCD'#27#02'EFGH';
    end;
    Bonne programmation

  9. #9
    Membre éprouvé Avatar de avigeilpro
    Homme Profil pro
    Ambulancier
    Inscrit en
    Janvier 2004
    Messages
    880
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Creuse (Limousin)

    Informations professionnelles :
    Activité : Ambulancier
    Secteur : Transports

    Informations forums :
    Inscription : Janvier 2004
    Messages : 880
    Points : 971
    Points
    971
    Par défaut
    Merci, j'essairais, mais pas tout de suite car j'ai pas le temps.

  10. #10
    Membre éprouvé Avatar de avigeilpro
    Homme Profil pro
    Ambulancier
    Inscrit en
    Janvier 2004
    Messages
    880
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Creuse (Limousin)

    Informations professionnelles :
    Activité : Ambulancier
    Secteur : Transports

    Informations forums :
    Inscription : Janvier 2004
    Messages : 880
    Points : 971
    Points
    971
    Par défaut
    Je réouvre ce post car j'ai une nouvelle question qui est dans le même but:
    Je souhaite faire entrer les codes par l'utilisateur, puis-je utiliser la fonction Chr pour convertir les nombre qu'il me donne. En bref est-ce que cela fonctionne :

    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
    program Saisie;
    uses crt;
     
    Var Code:Integer;   {Variable de saisie des codes}
    TotalCodes:String;  {Variable contenant les Codes convertis en caractères ascii}
    AffCodes:String;     {Variable pour afficher les codes à l'écran}
    CodeStr:String;      {Variable pour Convertir code de Integer à string pour affichage}
     
    Begin
    Code:=0;
    AffCodes:='';
    TotalCodes:='';
     
    {Necessite d'entrer -1 pour arrêter la saisie. Ce code n'est pas pris en compte}
    While Code<>-1 Do
       Begin
          clrscr;
          Writeln(AffCodes);
          Readln(Code);
          If Code<>-1 then
             Begin
                  Str(Code,CodeStr);
                  AffCodes:=AffCodes + '-' + CodeStr;
             end;
          TotalCodes:=TotalCodes + Chr(Code);
       end;
     
    end.
    Merci d'avance

  11. #11
    Membre expert
    Avatar de Eric Sigoillot
    Inscrit en
    Mars 2002
    Messages
    1 212
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 212
    Points : 3 369
    Points
    3 369
    Par défaut
    Bonjour,

    Citation Envoyé par avigeilpro
    En bref est-ce que cela fonctionne
    On a rarement vu un PC exploser suite à l'utilisation de Crt
    Le plus simple reste donc de tester.

    Mais sinon, oui, ça devrait fonctionner. Ne pas oublier toutefois que le premier code d'échappement se doit d'être Esc (#27), sinon, ça ne risque pas de fonctionner...

    @++

  12. #12
    Membre éprouvé Avatar de avigeilpro
    Homme Profil pro
    Ambulancier
    Inscrit en
    Janvier 2004
    Messages
    880
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Creuse (Limousin)

    Informations professionnelles :
    Activité : Ambulancier
    Secteur : Transports

    Informations forums :
    Inscription : Janvier 2004
    Messages : 880
    Points : 971
    Points
    971
    Par défaut
    Dac
    Merci beaucoup

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. problème rs 232
    Par remy059 dans le forum Composants
    Réponses: 4
    Dernier message: 09/08/2006, 12h14
  2. probl avec swing, tuto pas tres clair
    Par Marc_3 dans le forum AWT/Swing
    Réponses: 13
    Dernier message: 24/03/2006, 15h51
  3. [Comm] Changer les Bauds dans une com RS-232
    Par philippe13 dans le forum Entrée/Sortie
    Réponses: 2
    Dernier message: 27/01/2006, 10h08
  4. RS 232 envoyer des donnees
    Par psyko_flex dans le forum C
    Réponses: 2
    Dernier message: 22/11/2005, 18h49
  5. Aide sur la RS 232
    Par Andr0 dans le forum C
    Réponses: 5
    Dernier message: 12/04/2005, 13h58

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