Click here to Skip to main content
12,896,175 members (51,686 online)
Rate this:
Please Sign up or sign in to vote.
See more: C#
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));
            //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)));
        public void Print(Panel pnl)
            pannel = 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 =
                printdoc1.PrinterSettings =
            previewdlg.Document = printdoc1;
            DialogResult result = previewdlg.ShowDialog();
            if (result == DialogResult.OK)
        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)

any suggestion would be appreciated .
Posted 8-Dec-12 20:00pm
chester_it21 15-Dec-12 11:12am
hi, may be your interest using WPF...i have sample applications for ID Card Print using WPF...You can download here ,in my solution tag..

1 solution

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

    Print Answers RSS
Top Experts
Last 24hrsThis month

Advertise | Privacy | Mobile
Web02 | 2.8.170424.1 | Last Updated 15 Dec 2012
Copyright © CodeProject, 1999-2017
All Rights Reserved. Terms of Service
Layout: fixed | fluid

CodeProject, 503-250 Ferrand Drive Toronto Ontario, M3C 3G8 Canada +1 416-849-8900 x 100