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
Du musst angemeldet sein, um einen Kommentar abzugeben.
Hinzufügen print_document durch ziehen aus der toolbox auf die form. Diesen code ausführen, wird es funktionieren.
http://csharpprobsandsoln.blogspot.in/2013/04/print-windows-form-in-c.html