چاپ فرم جاری در سی شارپ

پنجشنبه 21 خرداد 1394

در این مقاله و نمونه ضمیمه شده قصد داریم فرم جاری را به همراه پیش نمایش چا پ کنیم .

چاپ فرم جاری در سی شارپ

در روی فرم یک کلید برای چاپ قرار میدیدم

کدهای کلید به شرح ذیل است

		System.Drawing.Printing.PrintDocument PrintDoc=new System.Drawing.Printing.PrintDocument();
			PageSetupDialog PageSetupDialog1=new PageSetupDialog();
			PrintPreviewDialog PreviewDialog=new PrintPreviewDialog();

			
			PrintDoc.OriginAtMargins=true;
			PrintDoc.DefaultPageSettings=PageSetupDialog1.PageSettings;
			PrintDoc.PrintPage+=new System.Drawing.Printing.PrintPageEventHandler(PrintDoc_Print);
			PageSetupDialog1.Document=PrintDoc;
			PageSetupDialog1.ShowDialog();

			PreviewDialog.Document=PrintDoc;
			PreviewDialog.AllowTransparency=true;
			PreviewDialog.WindowState = System.Windows.Forms.FormWindowState.Maximized;
			PreviewDialog.ShowDialog();

			PrintDoc.Dispose();
			PreviewDialog.Dispose();
			PageSetupDialog1.Dispose();

 

همانطور که میبینید از فضای نام System.Drawing.Printing استفاده شده است

 

متد زیر وظیفه تهیه تصویر از کنترل های روی فرم را بر عهده دارد

		private void DrawControls( System.Drawing.Printing.PrintPageEventArgs e)
		{
			System.Drawing.SolidBrush 	SBrush = new System.Drawing.SolidBrush(System.Drawing.Color.White);
			System.Drawing.Rectangle Rect = new System.Drawing.Rectangle(lbl1.Left , lbl1.Top, lbl1.Width, lbl1.Height);
			System.Drawing.Region Region1 = new System.Drawing.Region(Rect);
			e.Graphics.FillRegion(SBrush, Region1);

			SBrush = new System.Drawing.SolidBrush(lbl1.ForeColor);
			System.Drawing.SizeF oSizeF = e.Graphics.MeasureString(lbl1.Text, lbl1.Font);
			e.Graphics.DrawString(lbl1.Text, lbl1.Font,SBrush, lbl1.Left, lbl1.Top,System.Drawing.StringFormat.GenericDefault);
			///e.Graphics.DrawString(lblCurrent.Text, lblCurrent.Font, oSolidBrush, lblCurrent.Left + e.MarginBounds.Left + (lblCurrent.Width - oSizeF.Width) / 2, 950 + e.MarginBounds.Top + 2, System.Drawing.StringFormat.GenericDefault);
			
			
		
			
			
			SBrush = new System.Drawing.SolidBrush(System.Drawing.Color.White);
			Rect = new System.Drawing.Rectangle(lbl2.Left , lbl2.Top, lbl2.Width, lbl2.Height);
			Region1 = new System.Drawing.Region(Rect);
			e.Graphics.FillRegion(SBrush, Region1);

            			
			SBrush = new System.Drawing.SolidBrush(lbl2.ForeColor);
			oSizeF = e.Graphics.MeasureString(lbl2.Text, lbl2.Font);
			e.Graphics.DrawString(lbl2.Text, lbl2.Font,SBrush, lbl2.Left, lbl2.Top,System.Drawing.StringFormat.GenericDefault);
			
			Rect =new Rectangle(pic1.Left,pic1.Top,pic1.Width,pic1.Height);
            Region1=new Region(Rect);
			e.Graphics.FillRegion(SBrush,Region1);

			e.Graphics.DrawImage(pic1.Image,Rect);
			Region1.Dispose();
			SBrush.Dispose();

	
		}

 

فایل های ضمیمه

ایمان مدائنی

نویسنده 1299 مقاله در برنامه نویسان
  • C#.net
  • 8k بازدید
  • 7 تشکر

کاربرانی که از نویسنده این مقاله تشکر کرده اند

در صورتی که در رابطه با این مقاله سوالی دارید، در تاپیک های انجمن مطرح کنید