Click here to Skip to main content
Rate this: bad
good
Please Sign up or sign in to vote.
See more: C# printing form
I have a windows form which contains an image & some textboxes on that image. I need to print contents after I fill those textboxes along with that image. I've used below code, but it only prints the image, not the values in textboxes.
 
private void pictureBox1_DoubleClick(object sender, EventArgs e)
       {
           PrintDocument pd = new PrintDocument();
           pd.PrintPage += new PrintPageEventHandler(PrintImage);
           pd.Print();
 
       }
 

private void PrintImage(object o, PrintPageEventArgs e)
        {
            int x = SystemInformation.WorkingArea.X;
            int y = SystemInformation.WorkingArea.Y;
            int width = this.Width;
            int height = this.Height;
 
            Rectangle bounds = new Rectangle(x, y, width, height);
 
            Bitmap img = new Bitmap(width, height);
 
            this.DrawToBitmap(img, bounds);
            Point p = new Point(100, 100);
            e.Graphics.DrawImage(img, p);
        }
Posted 12-Nov-12 20:47pm
Rate this: bad
good
Please Sign up or sign in to vote.

Solution 1

Then you need to expand the PrintImage method to include something along the line of:
this.DrawToBitmap(img, bounds);
Point p = new Point(100, 100);
e.Graphics.DrawImage(img, p);
// Now add a string...
e.Graphics.DrawString("Hello World!", new Font("Arial", 16), Brushes.Black, new PointF(100.0F, 100.0F));
  Permalink  
Comments
OriginalGriff at 13-Nov-12 3:35am
   
So retrieve the values from your text boxes, and use them where I put "Hello World!"...
 
Is this really that difficult for you?

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



Advertise | Privacy | Mobile
Web02 | 2.8.150129.1 | Last Updated 13 Nov 2012
Copyright © CodeProject, 1999-2015
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