日期:2014-05-18 浏览次数:21142 次
拉一个printDocument控件到界面。 
打印按钮的代码: 
C# code
Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/
        private void button2_Click(object sender, EventArgs e)//执行打印
        {
            PrintDialog MyPrintDg = new PrintDialog();
            MyPrintDg.Document = printDocument1;
            if (MyPrintDg.ShowDialog() == DialogResult.OK)
            {
                try
                {
                    printDocument1.Print();
                }
                catch
                {   //停止打印
                    printDocument1.PrintController.OnEndPrint(printDocument1, new System.Drawing.Printing.PrintEventArgs());
                }
            }
        }
另外还要设置PrintPage事件:
C# code
Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/
        private void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
        {
            e.Graphics.DrawImage(pictureBox1.Image, 20, 20);
        }
------解决方案--------------------
先在界面上拖入printDocument控件,然后打印事件中写:
byte[] input = new Byte[100000];
//读取图片
FileStream fs = new FileStream(@"图片路径", FileMode.Open, FileAccess.Read);
fs.Read(input, 0, 100000);
//设置打印页面
printDocument1.DefaultPageSettings.Landscape = true;
//向打印页绘制图片
Image image = Image.FromStream(fs);
e.Graphics.DrawImage(image, 20, 20);
//打印
printDocument1.Print();