Printing Custom size C#
<p>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 different screen resolution I analyse that it also depends on the screen size.</p>

<p>So Kindly Help me what modification should be done in my code to adjust size depending on the screen resolution.</p>

<pre><code>    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));
        //Rectangle rect = new Rectangle(0, 0, 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;
        //previewdlg.ShowDialog();
        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));
        //pagearea.Width = 245;
        // e.Graphics.PageUnit = GraphicsUnit.Millimeter;
        e.Graphics.DrawImage(MemoryImage, pagearea);

    }
    private void printcardbtn_Click(object sender, EventArgs e)
    {
         Print(pnlcard);

    }
</code></pre>

<p>any suggestion would be appreciated .
regards...</p>
