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

Windows Forms Discussion :

Impression en couleur impossible


Sujet :

Windows Forms

  1. #1
    Modérateur
    Avatar de toopac
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2009
    Messages
    940
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Ille et Vilaine (Bretagne)

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

    Informations forums :
    Inscription : Juin 2009
    Messages : 940
    Points : 2 913
    Points
    2 913
    Par défaut Impression en couleur impossible
    Bonjour, j'ai une petit problème d'impression.

    Il y a plus de 2 mois que j'ai réalisé ma fonction d'impression, et récemment, j'ai eu une surprise quand j'ai voulu imprimer en couleur : Tout sort en N&B.

    L'imprimante imprime bien de la couleur à partir d'une autre application.

    Voici mon code (simplifié)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    public void print()
    {
        PrintDialog pdlog = new PrintDialog();
        pdlog.Document = printDocument1;
        printDocument1.DefaultPageSettings.Landscape = true;
        printDocument1.DefaultPageSettings.Color = true;
        if (pdlog.ShowDialog().Equals(DialogResult.OK))
        {
            printDocument1.PrinterSettings.DefaultPageSettings.Color = true;
            printDocument1.Print();
        }
    }
    en débugant, je me suis aperçu que printDocument1.PrinterSettings.SupportsColor est égal à False. C'est très curieux, puisque l'imprimante sélectionnée peut (et elle le fait) imprimer en couleur.

  2. #2
    Modérateur
    Avatar de toopac
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2009
    Messages
    940
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Ille et Vilaine (Bretagne)

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

    Informations forums :
    Inscription : Juin 2009
    Messages : 940
    Points : 2 913
    Points
    2 913
    Par défaut
    Avec l'aperçu avant impression j'ai bien de la couleur.

    En revanche, quand j'imprime avec l'imprimante "Microsoft Office Document Image Writer", j'obtiens un fichier .tif, contenant ma zone d'impression en noir et blanc...

  3. #3
    Modérateur
    Avatar de toopac
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2009
    Messages
    940
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Ille et Vilaine (Bretagne)

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

    Informations forums :
    Inscription : Juin 2009
    Messages : 940
    Points : 2 913
    Points
    2 913
    Par défaut
    J'ai raté une propriété à mettre à true quelque part?

  4. #4
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    1 277
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Réunion

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 277
    Points : 1 521
    Points
    1 521
    Par défaut
    Il est possible que l'imprimante virtuelle n'imprime qu'en noir et blanc non ?

    Quel type de TIF est généré ?

    Il est classique d'utiliser du TIF compressé pour du stockage en noir et blanc (très bonne compression dans ce format).

  5. #5
    Modérateur
    Avatar de toopac
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2009
    Messages
    940
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Ille et Vilaine (Bretagne)

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

    Informations forums :
    Inscription : Juin 2009
    Messages : 940
    Points : 2 913
    Points
    2 913
    Par défaut
    Bonjour, alors ce matin je refais un test, et tout semble fonctionner... pourtant je n'ai rien toucher (il me semble).

    Je pense que le mystère réside dans cette fonction :
    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
     
    01.    public Bitmap getBmp()
    02.    {
    03.        Bitmap bmp = null;
    04.        Graphics gr = null;
    05.        IntPtr bmpHdc = IntPtr.Zero;
    06.        try
    07.        {
    08.            this.Show();
    09.            bmp = new Bitmap(this.panelPrincipal.Width, this.panelPrincipal.Height);
    10.            gr = Graphics.FromImage(bmp);
    11.            bmpHdc = gr.GetHdc();
    12.            Message msg = new Message();
    13.            msg.Msg = WM_PRINT;
    14.            msg.HWnd = panelPrincipal.Handle;
    15.            msg.WParam = bmpHdc;
    16.            msg.LParam = new IntPtr(PRF_NONCLIENT | PRF_CLIENT | PRF_ERASEBKGND | PRF_CHILDREN | PRF_OWNED);
    17.            this.WndProc(ref msg);
    18.        }
    19.        catch { }
    20.        finally
    21.        {
    22.            if (gr != null)
    23.            {
    24.                if (bmpHdc != IntPtr.Zero)
    25.                    gr.ReleaseHdc(bmpHdc);
    26.                gr.Dispose();
    27.            }
    28.        }
    29.        return bmp;
    30.    }
    avant j'avais une erreur dès la ligne 11 : "ressource déjà utilisée" ou un truc du genre.
    J'ai testé un gr.ReReleaseHdc avant, mais j'avais une erreur aussi.

    Ce matin je me replonge dans mon code en mode débug, et constate que je vais de ligne en ligne sans rencontrer de problème.

    J'imprime et miracle, ça sort en couleur...

    Alors je suis content, ça marche, mais j'aimerais savoir pourquoi ça ne marchait pas avant, histoire d'être sûr de ne plus avoir une mauvaise surprise en allant chercher mon impression.

    Quelqu'un aurait-il une idée sur ce qu'il s'est passé?

    PS : @Kaidan : le fait qu'MS office document image writer imprime en N&B était effectivement normal

Discussions similaires

  1. impression en couleur d'un fichier.m
    Par NELLLY dans le forum MATLAB
    Réponses: 4
    Dernier message: 23/03/2007, 10h22
  2. Changement de couleur impossible
    Par jfa15683 dans le forum Delphi
    Réponses: 2
    Dernier message: 14/09/2006, 16h53
  3. Impression de couleur de tableau
    Par crochepatte dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 09/06/2006, 16h10
  4. Réponses: 19
    Dernier message: 24/03/2006, 12h45
  5. Non impression des couleurs dans le tableau.
    Par sebduduf dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 27/07/2005, 16h13

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