روش پرینت گرفتن از فرم خام
سلام
این کد برای پرینت گرفتن است ولی موقع پرینت کل صفحه A4 را نمی گیرد.
چطور می توانم سایز پرینت را مشخص کنم که مثلاً کل A4 یا A5 پرینت بگیرد؟؟؟
namespace
WindowsFormsApplication2
{
publicpartialclassForm1 : Form
{
public Form1()
{
InitializeComponent();
}
Bitmap memoryImage;
privatevoid CaptureScreen()
{
Graphics myGraphics = this.CreateGraphics();
Size s = this.Size;
memoryImage =
newBitmap(s.Width, s.Height, myGraphics);
Graphics memoryGraphics = Graphics.FromImage(memoryImage);
memoryGraphics.CopyFromScreen(
this.Location.X, this.Location.Y, 0, 0, s);
}
privatevoid printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
{
e.Graphics.DrawImage(memoryImage, 0, 0);
}
privatevoid button1_Click(object sender, EventArgs e)
{
CaptureScreen();
printDocument1.Print();
}
privatevoid Form1_Load(object sender, EventArgs e)
{
// TODO: This line of code loads data into the 'RadmanDataSet.tblLetter' table. You can move, or remove it, as needed.
this.tblLetterTableAdapter.Fill(this.RadmanDataSet.tblLetter);
this.reportViewer1.RefreshReport();
}
}
}
نقل قول: روش پرینت گرفتن از فرم خام
لطفاً یکی راهنمایی کند!!!
نقل قول: روش پرینت گرفتن از فرم خام
می خوام این جوری پرینت بگیرم که به جای اندازه فرم که روی برگه A4 می افته کل A4 رو پر کنه.
یکی جواب بده.
نقل قول: روش پرینت گرفتن از فرم خام
یه کده دیگه پیدا کردم که کمتر از بالاییه.
private void btnPrint_Click(object sender, EventArgs e)
{
printDialog1.ShowDialog();
printDocument1.Print();
}
private void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
{
Bitmap b = newBitmap(this.panel1.Width, this.panel1.Height);
this.panel1.DrawToBitmap(b, newRectangle(0, 0, this.panel1.Width, this.panel1.Height));
e.Graphics.DrawImage(b, new Point(0, 0));
}
نقل قول: روش پرینت گرفتن از فرم خام
می دونم چرا جواب نمی دید.
دارید پیش خودتون می گید که جاهای دیگه تالار این کدها هست ولی اون چیزی که من می خوام نداره.
یه PrintOption.PaperSize پیدا کردم که بتونم برابر A4 قرارش بدم ولی PaperSize رو نمی شناسه انگار این کد مخصوص VB هستش.
لطفاً سریعتر یکی به من کمک کنه نیاز دارم فوراً.
اقلاً اگه نمیشه اونجوری کرد بشه موقع زدن دکمه در قسمت new Point(0, 0 بشه یه عددی زد که در قسمت بالای صفحه به جای اینکه عکس بال سمت چپ بیافته بالا وسط بیافته.
با تشکر
نقل قول: روش پرینت گرفتن از فرم خام
در رویداد 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);
}
نقل قول: روش پرینت گرفتن از فرم خام
داداش دمت گرم که کارم خفن راه افتاد.
خیلی ممنون