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 :

[VS2003] Comment imprimer une fenêtre windows? [Fait]


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 571
    Par défaut [VS2003] Comment imprimer une fenêtre windows?
    Bonjour tout le monde,

    Voila j'ai la fenêtre que j'ai joint dans le document word.

    Je souhaiterais en cliquant sur le bouton "imprimer", pouvoir imprimer le contenu avec en + une entete correspondant aux coordonnées de l'entreprise.

    Je sait pas trop comment je peux faire cela donc si quelqu'un a une idée??

    Merci d'avance!!

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    2 210
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 210
    Par défaut
    Salut, je pourrais te rediriger vers d'autres (parceque c'est pas ça qui manque ), mais l'impression c'est toujours un sujet galère (et donc les posts sont toujours un peu fouilli).

    Pour imprimer sur une imprimante, tu peux utilliser la classe System.Drawing.Printing.PrintDocument.

    Et faire ainsi (les explications des étapes sont dans les commentaires du code) :

    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
    private void buttonImprimer_Click(object sender, EventArgs e) 
    { 
        PrintDocument pd = new PrintDocument();
     
        // évènement déclenché juste avant l'impression pour obtenir un dessin
        pd.PrintPage += new PrintPageEventHandler(pd_PrintPage); 
        // lancement de l'impression
        pd.Print(); 
    }
     
    private void pd_PrintPage(object sender, PrintPageEventArgs e) 
    { 
        // Là c'est comme si tu fais un dessin normal 
        Graphics dc = e.Graphics; 
     
        // tu fait ton dessin sur le support dc (c'est là que tu peux dessiner ton entête entreprise puis ajouter le contenu de la Form). 
     
        // Test s'il n'y a plus aucune page à imprimer 
        if ( Condition ) 
            e.HasMorePages = true;
        else 
            e.HasMorePages = false;
    }
    Voilà une piste

    Pour dessiner le contenu de la fenêtre dans le Graphics, tu peux t'inspirer du lien de la FAQ qui suit (mais en simulant les touches ALT + CTRL) : http://faqcsharp.developpez.com/?pag...us_printscreen

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 571
    Par défaut réponse à binoo
    Merci pour ta réponse mais j'ai quelques soucis.

    Pour le moment je fais sans insérer l'entete correspondant aux coordonnées de l'entreprise.

    Voici le code du bouton "imprimer" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    private void Imprimer_Click(object sender, System.EventArgs e)
    		{
    			PrintDocument pd = new PrintDocument();
     
    			// évènement déclenché juste avant l'impression pour obtenir un dessin
    			pd.PrintPage += new PrintPageEventHandler(pd_PrintPage); 
    			// lancement de l'impression
    			pd.Print(); 
    		}
    Voici le code de pd_PrintPage :
    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
    private void pd_PrintPage(object sender, PrintPageEventArgs e) 
    		{ 
    			// Là c'est comme si tu fais un dessin normal 
    			Graphics dc = e.Graphics; 
     
    			// tu fait ton dessin sur le support dc (c'est là que tu peux dessiner ton entête entreprise puis ajouter le contenu de la Form). 
    			Bitmap screen;
    			Bitmap window;
     
    			// simuler l'appui de la touche PrintScreen
    			SendKeys.SendWait("{PRTSC}");
    			// récupérer l'image obtenue dans le Presse-Papier 
    			window = ((Bitmap)(Clipboard.GetDataObject().GetData("Bitmap")));
    			// attribuer l'image à PBWindow
    			PBWindow.Image = window;
     
    			// simuler le PrintScreen enrichi
    			SendKeys.SendWait("+{PRTSC}");
    			// récupérer l'image obtenue dans le Presse-Papier
    			screen = ((Bitmap)(Clipboard.GetDataObject().GetData("Bitmap")));
    			// attribuer l'image à PBScreen
    			PBScreen.Image = screen;
    			/*
    						// Test s'il n'y a plus aucune page à imprimer 
    						if ( Condition ) 
    							e.HasMorePages = true;
    						else 
    							e.HasMorePages = false;  
    			*/		}
    	}
    Pour le moment j'ai mit la partie suivante en commentaire car je vois pas quoi mette comme condition(comment la formuler).
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    /*
    						// Test s'il n'y a plus aucune page à imprimer 
    						if ( Condition ) 
    							e.HasMorePages = true;
    						else 
    							e.HasMorePages = false;  
    			*/
    Puis a chaque fois, cela m'imprimer une feuille vide. Mes PictureBox me montre les choses que j'ai insérer dans le document word ci-joint.

    Merci d'avance!!

  4. #4
    Membre Expert
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    2 210
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 210
    Par défaut
    En fait il faut utiliser dc, cf. :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Graphics dc = e.Graphics
    e étant un PrintPageEventArgs, donc lié à l'impression

    La, rien n'est dessiné sur le support dc.

  5. #5
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 571
    Par défaut réponse à binoo
    Ok, je me doutais qu'il y avait un problème de dessin, mais je vois pas trop comment faire mais bon merci quand même!! Je vais continuer à m'arracher les cheveux
    lol

    Cordialement!!

  6. #6
    Membre Expert
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    2 210
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 210
    Par défaut
    Si ça peut t'aider, tu peux ajouter un bitmap au graphique de la manière suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Graphics g = Graphics.FromImage(myBitmap);

Discussions similaires

  1. [VB.NET]Comment Imprimer une form
    Par bernard06 dans le forum Windows Forms
    Réponses: 4
    Dernier message: 19/10/2011, 17h43
  2. Comment récupérer une fenêtre Windows dans un objet Form de VB ?
    Par Najdar dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 22/04/2010, 11h40
  3. Réponses: 2
    Dernier message: 13/05/2008, 09h06
  4. Comment fermer une fenêtre quand la souris et clavier sont inactifs ?
    Par Goldenkiller dans le forum Composants VCL
    Réponses: 7
    Dernier message: 06/12/2004, 22h09
  5. [eclipse][plugin] Comment avoir une fenêtre avec focus
    Par relivio dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 07/04/2004, 15h54

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