با سلام ؛
از تمام کاربرانی که هم اکنون ONLine هستند برنامه ای برای چاپ یک فرم تقاضا دارم . لطفاً کمکم کنید . خیلی ضروری و احتیاج سریع .
با سلام ؛
از تمام کاربرانی که هم اکنون ONLine هستند برنامه ای برای چاپ یک فرم تقاضا دارم . لطفاً کمکم کنید . خیلی ضروری و احتیاج سریع .
using System.Drawing.Printing;
using System.Windows.Forms;
//For "PrintDocument" Class
public partial class Form3 : Form
{
PrintDocument PrintDoc1 = new PrintDocument();
PrintPreviewDialog PPDlg1 = new PrintPreviewDialog();
public Form3()
{
InitializeComponent();
PPDlg1.Document = PrintDoc1;
PrintDoc1.OriginAtMargins = true;
//To set or Get the Position of a Graphic Object
PrintDoc1.PrintPage += PDoc_PrintPage;
}
private void btn_PrintPreview_Click(object sender, EventArgs e)
{// When PrintPreview Button Clicks
PPDlg1.ShowDialog();
}
private void PDoc_PrintPage(object sender, PrintPageEventArgs e)
{
Bitmap bmp = new Bitmap(this.Width, this.Height);
//this.DrawToBitmap(bmp, this.ClientRectangle);
this.DrawToBitmap(bmp, new Rectangle(0, 0, bmp.Width, bmp.Height));
//Takes the Snap of the Exact WindowForm size as Bitmap image e.Graphics.DrawImage(bmp, 0, 0);
}
private void btn_PrintPage_Click(object sender, EventArgs e)
{
//When Print Button Clicks, Image will be show & Ready to Print
PrintDoc1.Print();
}
}
آخرین ویرایش به وسیله saed2006 : شنبه 25 اردیبهشت 1389 در 19:52 عصر
دوست عزیز ؛
ممنونم ولی :
من برنامه را در سی شارپ اجرا کردم ولی مد نظر نبود .
منضور من از چاپ فرم ، چاپ فرم برنامه که با آن کار می کنیم و کنترل ها روی اون قرار می گیرن . ( یعنی تصویری از فرم )
لطفاً اگه میشه راهنمایی کنید .
2) با چه كدي ميتونم از كل فرم پرينت بگيرم؟void PrintImage(object o, PrintPageEventArgs e)و این کد را هم در buttom مورد نظر بنویس:
{
int x = SystemInformation.WorkingArea.X;
int y = SystemInformation.WorkingArea.Y;
int width = this.Width;
int height = this.Height;
Rectangle bounds = new Rectangle(x, y, width, height);
Bitmap img = new Bitmap(width, height);
this.DrawToBitmap(img, bounds);
Point p = new Point(100, 100);
e.Graphics.DrawImage(img, p);
}
PrintDocument pd = new PrintDocument();
pd.PrintPage += new PrintPageEventHandler(PrintImage);
pd.Print();
اکه نخای خودتو درگیر راه حل قبلی بکنی می تونی از تابع DrawToBitmap استفاده کنی که هر شی اون رو از Control به ارث می بره
وقتی ازش خروجی گرفتی می تونی هر کاری باهاش بکنی.
ببینید وقتی من این پست رو داشتم می نوشتم آقای peymanjon جواب رو گذاشتند دستشون درد نکنه .
خوب فرض کنیم نام فرم ما AliForm باشه
Bitmap bitmap = new Bitmap(500, 500);
AliForm.DrawToBitmap(bitmap, new Rectangle(0, 0, 500, 500));
خوب الان تصویر فرم در bitmap و می تونی از تابع Save ذخیرش کنی یا هزار کارِ دیگه!