Je vient de réussir à imprimer quelque chose.
Donc tout d'abord j'ai imprimer la première page dans les documents jointes ("impression2"):
... e.Graphics.DrawImage(PBWindow.Image, new PointF(100, 100));...
Puis si j'utilise
.... e.Graphics.DrawImage(PBScreen.Image, new PointF(100, 100)); ....
j'obtien la deuxième image ("impression1").
Donc la meilleure fenêtre est la deuxième ("impression1") mais j'ai quand même des problème :
J'aimerais que :
* la fenêtre s'imprimme sur toute la feuille.
* les boutons disparraisse
* Si possible que les comboBox devienne des text box voir label.
* La fenêtre "Impression" en haut à geuche est elle suprimable sur l'affichage de la feuille imprimer.
Parce que si j'ai bien compris, cette feuille sera passé au client donc faut qu'elle soit présentable.
Es-ce que cela est-il possible??
Voici le code dans sa totalité pour l'impression :
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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
| 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();
}
private void pd_PrintPage(object sender, PrintPageEventArgs e)
{
PBWindow.Visible = true;
PBScreen.Visible = true;
// 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;
dc = Graphics.FromImage(PBScreen.Image);
dc = Graphics.FromImage(PBWindow.Image);
e.Graphics.DrawImage(PBWindow.Image, new PointF(100, 100));
// Test s'il n'y a plus aucune page à imprimer
if ( dc == null )
e.HasMorePages = true;
else
e.HasMorePages = false;
} |
Coridialement.
Partager