1 pièce(s) jointe(s)
Ajuster la taille à l'impression
Bonjour,
Mon programme doit permettre d'imprimer une copie d'écran d'un formulaire. Le code suivant fonctionne, mais la copie d'écran semble trop grande, du coup je n'ai qu'un morceau qui apparait dans l'aperçu avant impression (cf la piece jointe) et c'est pareil lors de l'impression.
Y'a t'il un paramètre qui permet d'ajuster automatiquement la taille du document à celle du papier ?
D'autre part, j'aimerai que la copie d'écran ne prenne que l'intérieur de la fenêtre, sans les menus et les barres d'outils, comment puis-je faire cela ?
Merci d'avance pour votre aide.
Code:
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
|
private void MenuImprimer(object sender, EventArgs e)
{
PrintDocument printDocument1 = new PrintDocument();
printDocument1.PrintPage += new PrintPageEventHandler(printDocument1_PrintPage);
PrintPreviewDialog printPreviewDialog1 = new PrintPreviewDialog();
printDocument1.DefaultPageSettings.Landscape = true;
printDocument1.DefaultPageSettings.PaperSize = new System.Drawing.Printing.PaperSize("PaperA4", 826, 1169);
printPreviewDialog1.Document = printDocument1;
CaptureScreen();
printPreviewDialog1.ShowDialog();
}
private void printDocument1_PrintPage(System.Object sender,System.Drawing.Printing.PrintPageEventArgs e)
{
e.Graphics.DrawImage(memoryImage, 0, 0);
}
Bitmap memoryImage;
private void CaptureScreen()
{
Graphics myGraphics = this.CreateGraphics();
Size s = this.Size;
memoryImage = new Bitmap(s.Width, s.Height, myGraphics);
Graphics memoryGraphics = Graphics.FromImage(memoryImage);
memoryGraphics.CopyFromScreen(this.Location.X, this.Location.Y, 0, 0, s);
}
} |