1

このコードを使用してフォームを印刷しようとしています:

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");
        }
    }

しかし、MyImage.Save でエラーが発生します。

エラー:

ExternalException was Unhandled: GDI+ で一般的なエラーが発生しました。

誰かがこの問題を修正して、なぜこのエラーが発生するのか説明してもらえますか?

前もって感謝します!

4

3 に答える 3