Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Impression d'une fenêtre [ Windows / Formulaire / Winforms / Controls ] (loic20h28)

mardi 27 mai 2008 à 12:05:06 | Impression d'une fenêtre

loic20h28

Bonjour tout le monde,

J'ai réussis à faire en sorte d'imprimer ma deuxième form.

Mes 2 problèmes à présents sont :
*Je souhaiterais que dans la feuille imprimé, on ne voye pas la barre "démarrer" et le titre de la fenêtre. Cela est-il possible??si oui, comment dois-je procéder s'il vous plais??
* Ci-joint, la boîte de dialogue qui apparît avant l'impression. Le message "Page 1 sur document" est incomplet d'aprés moi, comment puis-je le remplir?? (c'est à dire avoir "Page 1 sur 1 document")

Voici le code que j'utilise pour l'impression (Ce code se situe derrière l'événement du clic d'un bouton se situant sur ma deuxième form(celle à imprimer)) :
privatevoid Imprimer_Click(object sender, System.EventArgs e)
{
     PrintDocument pd = new PrintDocument();
 
      // appel de la fonciton CreationBitmap()
     CreationBitmap();
 
     // évènement déclenché juste avant l'impression pour obtenir un dessin
     pd.PrintPage += new PrintPageEventHandler(pd_PrintPage)
 
     // lancement de l'impression
     pd.Print();
}
 
privatevoid CreationBitmap()
{
   Bitmap screen;
   Bitmap window;
   Imprimer.Visible = false;
 
   // 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;
}
 
privatevoid pd_PrintPage(object sender, PrintPageEventArgs e)
{ 
   // Là c'est comme si tu fais un dessin normal 
   Graphics dc = e.Graphics
 
   dc = Graphics.FromImage(PBScreen.Image);
   dc = Graphics.FromImage(PBWindow.Image);
 
   e.Graphics.DrawImage(PBScreen.Image, new PointF(50, 10));
 
   // Test s'il n'y a plus aucune page à imprimer 
   if( dc == null) 
      e.HasMorePages = true;
   else 
      e.HasMorePages = false
}


Merci d'avance!!

mercredi 28 mai 2008 à 21:53:47 | Re : Impression d'une fenêtre

Charles Racaud

Membre Club
Réponse acceptée !
Salut,

Oulà, tu te complique bien la vie avec des captures d'écran en passant pas le presse-papier.
Tiens, regarde ca : http://www.codyx.org/snippet_capture-image-form-tous-controles_147.aspx

__________
  Kenji


mercredi 28 mai 2008 à 22:04:06 | Re : Impression d'une fenêtre

loic20h28

Ok, merci pour ta réponse Charles Racaud.

Mais, est-ce que ta façon de faire va résoudre mes problèmes??

Merci d'avance!!

mercredi 28 mai 2008 à 22:08:18 | Re : Impression d'une fenêtre

Charles Racaud

Membre Club
Oui, ton problème était bien que tu avais l'écran entier au lieu de la fenêtre ?
Dans le snippet proposé, cela retourne l'image de ta form sans passer par des capture d'écran, press-papier et simulation de touches.

__________
  Kenji


mercredi 28 mai 2008 à 22:17:15 | Re : Impression d'une fenêtre

loic20h28

Ok, merci pour tout, j'essayerai ça alors et je te tiens au courant.

Cordialement.

mercredi 28 mai 2008 à 22:38:36 | Re : Impression d'une fenêtre

loic20h28

Par contre, je travail sur VS 2003, ça va fonctionner que même??

Sinon je dois prendre lequel de la page car yen à deux pour C#??

Merci d'avance!!

mercredi 28 mai 2008 à 23:09:26 | Re : Impression d'une fenêtre

Charles Racaud

Membre Club
Dans ce cas prend celui de MorpionMx (C# 1.x)

__________
  Kenji


jeudi 29 mai 2008 à 12:32:24 | Re : Impression d'une fenêtre

loic20h28

Bonjour,

Ok, j'ai essayé mais voilà l'erreur qu'il m'affiche : 'System.Drawing.Bitmap' désigne un 'classe' qui n'est pas valide dans le contexte donné.

Voici le code que cela me donne :

public

Bitmap PrintWindowEx()
{
   Bitmap bmp =
null;
   Graphics gr =
null;
   IntPtr hdc = IntPtr.Zero;
   
try
   
{
         bmp =
new Bitmap(this.ClientRectangle.Width, this.ClientRectangle.Height,       
          this
.CreateGraphics());
         gr = Graphics.FromImage(bmp);
         hdc = gr.GetHdc();
         IntPtr wParam = hdc;
         IntPtr lParam =
new IntPtr(PRF_CLIENT | PRF_CHILDREN);
         Message msg = Message.Create(
this.Handle, WM_PRINT, wParam, lParam);   
         
this.WndProc(ref msg);
   }
   
catch { }
   
finally
   
{
      
if (gr != null)
      {
         
if (hdc != IntPtr.Zero)
            gr.ReleaseHdc(hdc);
            gr.Dispose();
      }
   }
   
return bmp;
}

private

void Imprimer_Click(object sender, System.EventArgs e)
{
      PrintDocument pd =
new PrintDocument();
      Bitmap();
      
// évènement déclenché juste avant l'impression pour obtenir un dessin
      
pd.PrintPage += new PrintPageEventHandler(pd_PrintPage); 
      
// lancement de l'impression
      
pd.Print();
}
Comment puis-je faire pour résoudre mon problème??

Merci d'avance!!

jeudi 29 mai 2008 à 12:50:22 | Re : Impression d'une fenêtre

Charles Racaud

Membre Club
Réponse acceptée !
Oulà non.
Quand tu appelle la fonction donné, PrintWindowEx te retourne une Bitmap.

Dans l'événement PrintPage tu y fait appelle :

privatevoid pd_PrintPage(object sender, PrintPageEventArgs e)
{ 
   e.Graphics.DrawImage(PrintWindowEx(), new PointF(50, 10));
 
   // Test s'il n'y a plus aucune page à imprimer 
   if( dc == null) 
      e.HasMorePages = true;
   else 
      e.HasMorePages = false
}



__________
  Kenji


jeudi 29 mai 2008 à 13:07:00 | Re : Impression d'une fenêtre

loic20h28

Merci pour tout, la feuille s'imprime sans le "menu démarer"....donc c'est cool!!

Par contre as-tu une idée pour résoudre le problème suivant : la boîte de dialogue qui apparît avant l'impression. Le message "Page 1 sur document" est incomplet d'aprés moi, comment puis-je le remplir?? (c'est à dire avoir "Page 1 sur 1 document")

Merci d'avance!!


1 2 3 4

Cette discussion est classé dans : impression, image, imprimer, bitmap, pd


Répondre à ce message

Sujets en rapport avec ce message

problème avec l'impression d'une image [ par choukri175 ] Salut,Quand je donne à l'utilisateur de choisir une imprimante pour imprimer un fichier, tout se passe bien sauf s'il a opté pour acrobat didtiller ou imprimer contenu d'une listbox [ par hellraiser94 ] bonjour,je souhaiterais savoir comment je peux faire l'impression du contenu d'une listbox à l'aide d'un bouton qui lance l'impression, tout ceci dans [PB] creation image sur panel altérée lors du passage d'une form au dessus [ par fcolo ] Bonjour,Je crée une image (un graphique) à partir d'un tableau de point [X,Y] sur un controle utilisateur.bitmap = new Bitmap(Width, Height);<font si Picture Box et Bitmap [ par angel2610 ] Bonjour j'aimerai savoir comment je pourrai faire pour transformer un Bitmap en Image ou alors comment aficher le Bitmap dans un pictureBox.    Je fai Bitmap en binaire [ par Captain_Bomber ] Bonjour tout le monde!!! J'ai un ch'tit problème là: Je dois faire une appli client-serveur qui permet de dessiner des formes sur une picturebox et q Nombre de copie à imprimer [ par Mellouli ] BonjourJe fais une application qui imprime les carnets de chèques, j'utilise Crystal Report pour imprimer les pages du chéquier. Quand je lance l'impr Impression Facture [ par amirbd ] Bonjour,Je viens de réaliser une application qui gere les ventes d'un magasin.L'application est terminé à part que je ne sais pas comment je peux fair Impression d'un Datagridview en C# [ par ThoT49 ] Bonsoir, j'ai cherché des sources ou des tutos qui aurait pu m'aider, cepandant je n'en n'es pas trouvé sur csharpfr.comDonc bah voici mon petit probl perte de portions d'image avec rotation d'andle quelconque [ par vboussema ] salut;quand je fait une rotation d'un angle quelconque pour une image je pert les coins de telle serte que l'image se découpe a chaque foi que je fait Pb avec picturebox et objet Bitmap [ par Shogo6 ] Bonjour je suis au bord de la crise de neeeeerfs!!!!Voila je fais une visionneuse d'image donc on selectionne l'image desirée ds une listbox et elle s


Nos sponsors

Sondage...

CalendriCode

Septembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
2930     

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,36 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.