Drucken Windows forms in c#

Ich versuche, drucken Sie ein Formular mit diesem code:

private void btnPrint_Click(object sender, EventArgs e)
    {
        Graphics g1 = this.CreateGraphics();
        Image MyImage = new Bitmap(this.ClientRectangle.Width, this.ClientRectangle.Height, g1);
        Graphics g2 = Graphics.FromImage(MyImage);
        IntPtr dc1 = g1.GetHdc();
        IntPtr dc2 = g2.GetHdc();
        BitBlt(dc2, 0, 0, this.ClientRectangle.Width, this.ClientRectangle.Height, dc1, 0, 0, 13369376);
        g1.ReleaseHdc(dc1);
        g2.ReleaseHdc(dc2);
        MyImage.Save(@"c:\PrintPage.jpg", ImageFormat.Jpeg);
        FileStream fileStream = new FileStream(@"c:\PrintPage.jpg", FileMode.Open, FileAccess.Read);
        StartPrint(fileStream, "Image");
        fileStream.Close();
        if (System.IO.File.Exists(@"c:\PrintPage.jpg"))
        {
            System.IO.File.Delete(@"c:\PrintPage.jpg");
        }
    }

Aber gibt mir eine Fehlermeldung an: "MyImage".Speichern.

Den Fehler:

ExternalException wurde nicht Behandelte: A generic error occurred in GDI+.

Kann mir jemand eine Lösung für dieses problem,und erklären, warum ich bin immer diese Fehlermeldung?

Vielen Dank im Voraus!

  • Ich denke, man muss Speichern bevor ReleaseHdc.
  • Ich denke, dieser ist einfacher
InformationsquelleAutor Max | 2012-12-11
Schreibe einen Kommentar