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

Composants VCL Delphi Discussion :

Imprimer sur imprimantes Noir/Blanc ou Couleur


Sujet :

Composants VCL Delphi

  1. #1
    Membre régulier
    Femme Profil pro
    Inscrit en
    Avril 2007
    Messages
    209
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2007
    Messages : 209
    Points : 93
    Points
    93
    Par défaut Imprimer sur imprimantes Noir/Blanc ou Couleur
    Bonjour tout le monde,

    J'utilise Delphi 6 pour imprimer différents documents. et j'ai découvert un problème un peu bizzare que je n'arrive pas à résoudre. J'ai reproduis ce problème sur un petit projet tout simple.


    J'ai une imprimante physique qui est installée deux fois sur mon serveur.
    - 1 fois pour une impression couleur (PRINTER_NTM_COLOR)
    - 1 fois pour une impression noir/Blanc. (PRINTER_NTM_NB)

    Ces imprimantes sont partagées sur mes postes clients. ce qui fait que j'ai les imprimantes suivantes :
    - \\MON_SERVEUR\PRINTER_NTM_COLOR
    - \\MON_SERVEUR\PRINTER_NTM_NB

    Si je fais une impression depuis Word ou Excel, pas de problème, l'imprimante COLOR imprimer en couleur, l'imprimante NB imprime en noir/blanc.

    J'ai la petite application de test suivante :

    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
     
    procedure TForm1.Button1Click(Sender: TObject);
    begin
         Printer.BeginDoc;
         Printer.Canvas.Brush.Color:=clWhite;
         Printer.Canvas.FillRect(Printer.Canvas.ClipRect);
         Printer.Canvas.Brush.Style:=bsSolid;
         Printer.Canvas.Font.Color:=clRed;
         Printer.Canvas.Font.Size:=20;
         Printer.Canvas.TextRect(Rect(200,200,Printer.PageWidth-200,Printer.PageHeight-200),
                                 200, 200, 'Test d''impression DELPHI');
         Printer.Canvas.TextRect(Rect(200,1000,Printer.PageWidth-200,Printer.PageHeight-1000),
                                 200, 1000, Label1.Caption);
         Printer.EndDoc;
     
    end;
     
    procedure TForm1.FormShow(Sender: TObject);
    begin
         //PrinterIndex := 4  // Color
         //PrinterIndex := 5 // Noir/Blanc
         Printer.PrinterIndex:=4;
         Label1.Caption:=Printer.Printers[Printer.PrinterIndex]; //nom de l'imprimante
         Printer.Title:='TEST '+Label1.Caption;
    end;
    Et là, que j'imprime avec l'imprimante couleur (PrinterIndex = 4) ou l'imprimante Noir/Blanc (PrinterIndex = 5), tout s'imprime toujours en noir/blanc.

    Si je n'ai qu'une seule imprimante couleur, le texte s'imprime bien en couleur.

    Est-ce que quelqu'un a déjà rencontré ce problème. Y a-t-il un moyen de le résoudre ?

    merci d'avance

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    59
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 59
    Points : 81
    Points
    81
    Par défaut
    Salut,
    Où as-tu paramétré le fait qu'une imprimante imprime en couleur et l'autre an Noir & Blanc?

  3. #3
    Membre régulier
    Femme Profil pro
    Inscrit en
    Avril 2007
    Messages
    209
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2007
    Messages : 209
    Points : 93
    Points
    93
    Par défaut
    Salut Gwenou, merci de ta réponse.

    Citation Envoyé par Gwenou Voir le message
    Salut,
    Où as-tu paramétré le fait qu'une imprimante imprime en couleur et l'autre an Noir & Blanc?
    J'ai paramétré ça dans les options d'impression de l'imprimante. ça a l'air de fonctionner vu qu'une impression depuis Word ou Excel fonctionne correctement.

    Une idée de la cause de mon problème?

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    59
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 59
    Points : 81
    Points
    81
    Par défaut
    A quel endroit lances-tu ton édition. Es-tu sur que l'édition se lance sur la bonne imprimante? au moment ou tu lance l'édition, met un showMessage qui affiche le Nom/Id de l'imprimante branché sur ton élément à imprimer.

  5. #5
    Membre régulier
    Femme Profil pro
    Inscrit en
    Avril 2007
    Messages
    209
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2007
    Messages : 209
    Points : 93
    Points
    93
    Par défaut
    Citation Envoyé par Gwenou Voir le message
    A quel endroit lances-tu ton édition.
    Tu veux parler du BeginDoc/EndDoc? je ne comprends pas très bien ta question. si c'est de ça que tu veux parler, ils sont sur le click d'un bouton(Voir le code sur mon premier post).

    J'ai essayer d'afficher le nom de l'imprimante courante (Printer.Printers[Printer.PrinterIndex] et c'est la bonne imprimante qui est utilisée

    Merci de ta réponse

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    59
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 59
    Points : 81
    Points
    81
    Par défaut
    Désolé, je crains de ne pas avoir compris le problème.
    ciao.

  7. #7
    Membre régulier
    Femme Profil pro
    Inscrit en
    Avril 2007
    Messages
    209
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2007
    Messages : 209
    Points : 93
    Points
    93
    Par défaut
    Re,

    Je vais essayer de réexpliquer d'une manière un peu moins brouillon

    J'ai deux imprimantes réseau :
    - \\MON_SERVEUR\PRINTER_NTM_COLOR --> Impression en couleur
    - \\MON_SERVEUR\PRINTER_NTM_NB --> Impression en noir et blanc

    Physiquement, ces deux imprimantes ne sont en fait qu'une seule et même imprimante configurée différemment.

    La configuration des imprimantes semble correcte. Si j'imprime un document depuis Word, il sort en couleur sur l'imprimante couleur et en noir/blanc sur l'imprimante noir/blanc.

    Jusque là, pas de problème.

    Si j'imprime un petit texte via le code que j'ai mis sur mon premier post, donc vraiment une impression tout ce qu'il y a de plus basic, (du texte rouge sur une page blanche) j'ai le problème suivant :
    - Sur l'imprimante noir/blanc --> impression en noir/blanc --> OK
    - Sur l'imprimante couleur --> impression en noir/blanc --> Pas OK

    Je ne comprend vraiment pas pourquoi mon impression sur l'imprimante couleur ne m'imprime pas en couleur.

    Si je n'installe qu'une seule des deux imprimantes, tout fonctionne parfaitement
    - Sur l'imprimante noir/blanc --> impression en noir/blanc --> OK
    - Sur l'imprimante couleur --> impression en couleur --> OK

    Il semble que la cohabitation des imprimantes pose problème mais je ne vois pas où


    J'espère que ça sera plus compréhensible.

    Merci d'avance

  8. #8
    Membre éprouvé Avatar de BuzzLeclaire
    Homme Profil pro
    Dev/For/Vte/Ass
    Inscrit en
    Août 2008
    Messages
    1 606
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Dev/For/Vte/Ass

    Informations forums :
    Inscription : Août 2008
    Messages : 1 606
    Points : 1 113
    Points
    1 113
    Par défaut
    Citation Envoyé par Nono23 Voir le message
    Re,

    Je vais essayer de réexpliquer d'une manière un peu moins brouillon

    J'ai deux imprimantes réseau :
    ...............
    J'espère que ça sera plus compréhensible.

    Merci d'avance
    Salut,

    Juste comme ça, tu a essayé d'imprimer sur l'imprimante NOIR/BLANC avec le PrinterIndex := 4 ?

  9. #9
    Membre régulier
    Femme Profil pro
    Inscrit en
    Avril 2007
    Messages
    209
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2007
    Messages : 209
    Points : 93
    Points
    93
    Par défaut
    Citation Envoyé par BuzzLeclaire Voir le message
    Salut,

    Juste comme ça, tu a essayé d'imprimer sur l'imprimante NOIR/BLANC avec le PrinterIndex := 4 ?

    Non non bien sûr, j'ai changé le PrintIndex En plus, ma tâche d'impression apparaît dans la file d'attente de la bonne imprimante

  10. #10
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 105
    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 105
    Points : 41 195
    Points
    41 195
    Billets dans le blog
    63
    Par défaut
    Bonjour

    as-tu fais le test en mettant l'imprimante couleur comme imprimante par défaut avant de lancer le programme ?

    puis en demandant d'imprimer en Noir et Blanc par le programme j'ai l'impression que dans ce cas tu aurais quand même de la couleur

  11. #11
    Membre éprouvé

    Profil pro
    Inscrit en
    Mai 2003
    Messages
    582
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mai 2003
    Messages : 582
    Points : 915
    Points
    915
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    var
      FDevice,FDriver,FPort: array [0..255] of Char;
      DeviceMode: THandle;
    //....
        printer.PrinterIndex:=4;
        //*** Force recreate setting from selected printer ***
        Printer.GetPrinter(FDevice, FDriver, FPort, DeviceMode);
        Printer.SetPrinter( FDevice , FDriver, FPort, 0);
    En Delphi 5 ici.. donc à voir si ça vous aide....

  12. #12
    Membre régulier
    Femme Profil pro
    Inscrit en
    Avril 2007
    Messages
    209
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2007
    Messages : 209
    Points : 93
    Points
    93
    Par défaut
    Bonjour à tous, merci de vos réponses et de votre aide.

    Après plusieurs essais, la solution d'Eric Boisvert semble fonctionner dans mon exemple.
    Citation Envoyé par Eric Boisvert Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    var
      FDevice,FDriver,FPort: array [0..255] of Char;
      DeviceMode: THandle;
    //....
        printer.PrinterIndex:=4;
        //*** Force recreate setting from selected printer ***
        Printer.GetPrinter(FDevice, FDriver, FPort, DeviceMode);
        Printer.SetPrinter( FDevice , FDriver, FPort, 0);
    En Delphi 5 ici.. donc à voir si ça vous aide....
    Je vais essayer de la mettre en place chez le client qui rencontrait le problème, mais normalement ça devrait fonctionner.

    Merci encore à tous.

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 03/04/2013, 19h34
  2. je n'arrive pas à imprimer sur imprimante reseau
    Par Dades dans le forum Administration
    Réponses: 2
    Dernier message: 16/09/2010, 12h41
  3. Réponses: 6
    Dernier message: 07/04/2008, 17h24
  4. Imprimer sur Imprimante ticket
    Par clo5000 dans le forum Access
    Réponses: 5
    Dernier message: 08/03/2008, 07h44
  5. bouton imprimer sur imprimante precise!
    Par NoobX dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 10/10/2005, 11h59

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