• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 1876
  • Last Modified:

I would like to know how could i print in a pvc card with c# and .NET?

I would like to know how could i print in a pvc card? Using GDI+? Whta's the exact size of a PVC Card in pixels?. If you have any other recomendation i'll be pleased. Thanks in advance.
1 Solution

I assume you have a printer for PVC cards which is installed as normal windows printer.

If that's the case then something like this should do the job for you:
 - get a background image. I found that 1004 x 638 looks best on the printer we have (Evolis Pebble 4)
 - place a PrintDocument control on the form
 - make button which will be used to start printing
 - put the code from below into button_Click and printDocument1_Print events

Please note that I haven't tested this code.
I have pasted it from different places from my application, so you'll probably have to adopt it to your application.

private void button1_Click(object sender, EventArgs e)
     //printer selection dialog 
     PrintDialog PD = new PrintDialog();
     DialogResult DR = PD.ShowDialog();
     //if printer is selected
     if (DR == DialogResult.OK)
          PaperSize PrinterPaperSize = PD.PrinterSettings.PaperSizes[0];
          //you might skip this check if names are different on your printer
          if (PrinterPaperSize.PaperName != "CR80 Card")
               MessageBox.Show("Selected printer doesn't support PVC cards");
                printDocument1.PrinterSettings = PD.Printersettings;
private void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
     //load background image
     Image background = Image.FromFile("c:\\aaa\\image.bmp");
     //create graphics object. we use it to draw onto background image
     Graphics g = Graphics.FromImage(background);
     //draw some strings
     Font PrintFont = new Font("Arial",11);
     SolidBrush PrintBrush = new SolidBrush(Color.FromArgb(0,54,121));
     g.DrawString("ABC123", PrintFont, PrintBrush, 235, 525);
     g.DrawString("Name surname", PrintFont, PrintBrush, 780, 525);
     //draw some shapes
     g.DrawRectangle(Pens.Red, 30, 60, 127, 450);
     g.DrawEllipse(Pens.Green, 145, 274, 380, 500);
     //when all drawing to the image is done, tell printer to print it 
     Rectangle PrintRect = new Rectangle(0, 0, printDocument1.PrinterSettings.PaperSizes[0].Width, printDocument1.PrinterSettings.PaperSizes[0].Height);
     e.Graphics.DrawImage(imgBackground, PrintRect);

Open in new window

Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

Keep up with what's happening at Experts Exchange!

Sign up to receive Decoded, a new monthly digest with product updates, feature release info, continuing education opportunities, and more.

Tackle projects and never again get stuck behind a technical roadblock.
Join Now