CaptureScreen()工作,验证,但事件PrintPage没有,我错过了什么?

时间:2012-04-15 20:48:10

标签: printing

这是我的打印代码。单击打印并出现对话框。如果你单击确定捕获屏幕启动。位图memoryImage成为当前表单显示的位图。香港专业教育学院证实它是正确的,并且图像被成功捕获。

最后发生了printDocument.Print()。只打印一个空白页面。香港专业教育学院尝试将其改为e.Graphics.Color(灰色);仍然没有运气只打印一个空白页。

显然与打印机的通信很好。我的猜测是页面实际上是在图像被附加之前打印的,但是我从来没有为打印编码,所以我不知道如何重新排列我的代码。

使用System.Drawing.Printing;

//显示打印对话框(效果很好)

    private void button2_Click(object sender, EventArgs e)
    {         
        PrintDialog printDialog1 = new PrintDialog();
        printDialog1.Document = printDocument1;
        DialogResult result = printDialog1.ShowDialog();
        if (result == DialogResult.OK)
        {
            CaptureScreen();
            printDocument1.Print();
            //this.Close();
        }
    }

    Bitmap memoryImage;

//捕获屏幕(也适用)

    private void CaptureScreen()
    {
        Graphics myGraphics = this.CreateGraphics();
        Size s = this.Size;
        memoryImage = new Bitmap(s.Width, s.Height, myGraphics);
        Graphics memoryGraphics = Graphics.FromImage(memoryImage);
        memoryGraphics.CopyFromScreen(
            this.Location.X, this.Location.Y, 0, 0, s);
    }

//来自捕获屏幕的drawimage(不起作用)

    private void printDocument1_PrintPage(System.Object sender,
           System.Drawing.Printing.PrintPageEventArgs e)
    {
        e.Graphics.DrawImage(memoryImage, 0, 0);
    }

0 个答案:

没有答案