Dear All;
I am trying to print on Card with special size using a card printer.
I wrote the code which was working great on my laptop , then when I used defferent screen I analys that it also depends on the screen size.
So Kindly Help me what modificication should be done in my code to adjust size depending on the screen resolution.
Panel pannel = null;
Bitmap MemoryImage;
public void GetPrintArea(Panel pnl)
{
Graphics g = this.CreateGraphics();
MemoryImage = new Bitmap(Convert.ToInt32(3.375 * g.DpiX), Convert.ToInt32(2.125 * g.DpiY));
pnl.DrawToBitmap(MemoryImage, new Rectangle(0, 0, Convert.ToInt32(3.375 * g.DpiX), Convert.ToInt32(2.125 * g.DpiY)));
MemoryImage.Save("pic.jpg");
}
public void Print(Panel pnl)
{
pannel = pnl;
GetPrintArea(pnl);
Graphics g = this.CreateGraphics();
printdoc1.DefaultPageSettings.PaperSize = new System.Drawing.Printing.PaperSize("Custom Size", Convert.ToInt32(3.375 * g.DpiX), Convert.ToInt32(2.125 * g.DpiY));
PageSetupDialog setupDlg = new PageSetupDialog();
setupDlg.Document = printdoc1;
setupDlg.AllowOrientation = true;
setupDlg.AllowPaper = true;
setupDlg.AllowPrinter = true;
if (setupDlg.ShowDialog() == DialogResult.OK)
{
printdoc1.DefaultPageSettings =
setupDlg.PageSettings;
printdoc1.PrinterSettings =
setupDlg.PrinterSettings;
}
previewdlg.Document = printdoc1;
DialogResult result = previewdlg.ShowDialog();
if (result == DialogResult.OK)
{
printdoc1.Print();
}
}
private void printdoc1_PrintPage(object sender, PrintPageEventArgs e)
{
Graphics g = this.CreateGraphics();
Rectangle pagearea = new Rectangle(0, 0, Convert.ToInt32(3.375 * g.DpiX), Convert.ToInt32(2.125 * g.DpiY));
e.Graphics.DrawImage(MemoryImage, pagearea);
}
private void printcardbtn_Click(object sender, EventArgs e)
{
Print(pnlcard);
}
any suggestion would be appreciated .
regards...