PDA

View Full Version : سوال: برنامه چاپ یک فرم ؟



mohsen.khodaparast
شنبه 25 اردیبهشت 1389, 19:27 عصر
با سلام ؛
از تمام کاربرانی که هم اکنون ONLine هستند برنامه ای برای چاپ یک فرم تقاضا دارم . لطفاً کمکم کنید . خیلی ضروری و احتیاج سریع .:ناراحت:

saed2006
شنبه 25 اردیبهشت 1389, 19:41 عصر
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();
}
}

mohsen.khodaparast
شنبه 25 اردیبهشت 1389, 20:24 عصر
دوست عزیز ؛
ممنونم ولی :
من برنامه را در سی شارپ اجرا کردم ولی مد نظر نبود .
منضور من از چاپ فرم ، چاپ فرم برنامه که با آن کار می کنیم و کنترل ها روی اون قرار می گیرن . ( یعنی تصویری از فرم )
لطفاً اگه میشه راهنمایی کنید .:عصبانی++:

saed2006
شنبه 25 اردیبهشت 1389, 20:32 عصر
http://www.codeproject.com/KB/printing/printform.aspx

peymanjon
شنبه 25 اردیبهشت 1389, 21:03 عصر
2) با چه كدي ميتونم از كل فرم پرينت بگيرم؟
void PrintImage(object o, PrintPageEventArgs e)
{
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);

}
و این کد را هم در buttom مورد نظر بنویس:


PrintDocument pd = new PrintDocument();
pd.PrintPage += new PrintPageEventHandler(PrintImage);
pd.Print();

ali.aghdam
شنبه 25 اردیبهشت 1389, 21:06 عصر
اکه نخای خودتو درگیر راه حل قبلی بکنی می تونی از تابع DrawToBitmap استفاده کنی که هر شی اون رو از Control به ارث می بره

وقتی ازش خروجی گرفتی می تونی هر کاری باهاش بکنی.

taghvajou
شنبه 25 اردیبهشت 1389, 21:18 عصر
اکه نخای خودتو درگیر راه حل قبلی بکنی می تونی از تابع DrawToBitmap استفاده کنی که هر شی اون رو از Control به ارث می بره

وقتی ازش خروجی گرفتی می تونی هر کاری باهاش بکنی.

میشه لطفا بیشتر توضیح بدین؟ ممنون

ali.aghdam
شنبه 25 اردیبهشت 1389, 23:21 عصر
ببینید وقتی من این پست رو داشتم می نوشتم آقای peymanjon (http://barnamenevis.org/forum/member.php?u=113688) جواب رو گذاشتند دستشون درد نکنه .

خوب فرض کنیم نام فرم ما AliForm باشه



Bitmap bitmap = new Bitmap(500, 500);

AliForm.DrawToBitmap(bitmap, new Rectangle(0, 0, 500, 500));


خوب الان تصویر فرم در bitmap و می تونی از تابع Save ذخیرش کنی یا هزار کارِ دیگه!