begin process at 2012 02 11 02:19:06
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C#

 > 

Windows

 > 

Formulaire / Winforms / Controls

 > 

Impression d'une fenêtre


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Impression d'une fenêtre

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ée 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 Ne pas permettre l'impression d'une image dans IE [ par genesian ] Bonjour, Sur un site que j'ai réalisé en xhtml je désirerais interdire la possibilité d'imprimer les photos. Notamment en passant par l'option "imprim Imprimer grande image sur plusieurs pages [ par elaene ] Bonjour! Je souhaiterai imprimer une image, qui pourra être grande et dépasser le cadre de la page d'impression. Même avec msdn j'ai du mal à comprend Extension de ma méthode d'impression [ par virgul ] Bonjour,Voila j'ai certain fichier  (doc, pdf et xls) que je doit imprimer depuis mon programme (Winform) et pour l'instant j'utilise la commande PRIN impression dans le langage C# [ par maleklhioui ] Salut, j'ai un petit problème au niveau du code de l'impression dans le langage C# plus précisèmment, au niveau de la construction du [b]Crystal Repor [C#] Enregistrer une image en cours d'utilisation [ par SlyK1012 ] Bonjour à tous ! [^^happy2] J'ai un petit problème pour enregistrer une image [b]bitmap[/b] sur le même nom et dans le même dossier que l'image d'ori pointeur rawdata bitmap [ par gearmat ] Bonjour Bonjour j'aurais besoin de votre aide pour la classe bitmap :) j'ai une dll coder en c++ de traitement d'image qui me demande en paramètre u Trouver tous les pixels noire dans une image binaire trés grande [ par issam414 ] Bonjour à tous, je débute dans la programmation en c# et je suis déjà perdu, pourtant ça me parait simple comme question [^^peur] . alors, j'ai une i Tourner une image [ par JohnBug ] Bonjour à tous, je suis nouveau à C# et completement ignorant en ce qui a trait aux images. je besoin de charger un dessin en format .wmf de le tourn imprimer image en c# [ par bachirmk ] Bonjour, comment je peux imprimer un photo stockée dans ma base de donnée (sql server 2000) dans un report.rdlc c# (visual studio 2005)? merci à vou


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), 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

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,811 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales