mh.milan
پنج شنبه 17 دی 1388, 20:11 عصر
سلام دوستان
من به مشکل در زمینه پرینت کردن یک پنل در سی شارپ برخوردم.
کدی که نوشتم به شکل زیر هستش. اما وقتی پرینت میکنه ، پنل رو وسط صفحه آچار پرینت نمیکنه، اگه بتونید تغییراتی در کد اعمال کنید که پنل رو وسط صفحه آچار چاپ کنه ، ممنون میشم.
با تشکر
namespace project
public class PrintClass
{
readonly PrintDocument printdoc1 = new PrintDocument();
readonly PrintPreviewDialog previewdlg = new PrintPreviewDialog();
Bitmap MemoryImage;
private readonly Panel panel_;
public PrintClass(Panel pnl)
{
panel_ = pnl;
printdoc1.PrintPage += (printdoc1_PrintPage);
MemoryImage = new Bitmap(pnl.Width, pnl.Height);
}
private void GetPrintArea(Control pnl)
{
MemoryImage = new Bitmap(pnl.Width, pnl.Height);
pnl.DrawToBitmap(MemoryImage, new Rectangle(0, 0, pnl.Width, pnl.Height));
}
private void printdoc1_PrintPage(object sender, PrintPageEventArgs e)
{
var pagearea = e.PageBounds;
e.Graphics.DrawImage(MemoryImage, (pagearea.Width / 2) - (panel_.Width / 2), panel_.Location.Y);
}
public void Print()
{
GetPrintArea(panel_);
previewdlg.Document = printdoc1;
previewdlg.ShowDialog();
}
}
}
من به مشکل در زمینه پرینت کردن یک پنل در سی شارپ برخوردم.
کدی که نوشتم به شکل زیر هستش. اما وقتی پرینت میکنه ، پنل رو وسط صفحه آچار پرینت نمیکنه، اگه بتونید تغییراتی در کد اعمال کنید که پنل رو وسط صفحه آچار چاپ کنه ، ممنون میشم.
با تشکر
namespace project
public class PrintClass
{
readonly PrintDocument printdoc1 = new PrintDocument();
readonly PrintPreviewDialog previewdlg = new PrintPreviewDialog();
Bitmap MemoryImage;
private readonly Panel panel_;
public PrintClass(Panel pnl)
{
panel_ = pnl;
printdoc1.PrintPage += (printdoc1_PrintPage);
MemoryImage = new Bitmap(pnl.Width, pnl.Height);
}
private void GetPrintArea(Control pnl)
{
MemoryImage = new Bitmap(pnl.Width, pnl.Height);
pnl.DrawToBitmap(MemoryImage, new Rectangle(0, 0, pnl.Width, pnl.Height));
}
private void printdoc1_PrintPage(object sender, PrintPageEventArgs e)
{
var pagearea = e.PageBounds;
e.Graphics.DrawImage(MemoryImage, (pagearea.Width / 2) - (panel_.Width / 2), panel_.Location.Y);
}
public void Print()
{
GetPrintArea(panel_);
previewdlg.Document = printdoc1;
previewdlg.ShowDialog();
}
}
}