در رویداد PrintPage اندازه مبدا و مقصد رو تعیین کنید:
Bitmap bmp;
private void CaptureScreen()
{
Graphics myGraphics = this.CreateGraphics();
bmp = new Bitmap(this.Width, this.Height);
this.DrawToBitmap(bmp, new Rectangle(0, 0, this.Width, this.Height));
}
private void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
{
int newWidth = (int)printDocument1.DefaultPageSettings.PrintableA rea.Width;
int newHeight = Convert.ToInt32((double)newWidth / bmp.Width * Height);
e.Graphics.DrawImage(bmp,
new Rectangle(0, 0, newWidth, newHeight),
new Rectangle(0, 0, bmp.Width, bmp.Height),
GraphicsUnit.Pixel);
}