c# 打印和报表

使用打印方法时,要先引用命名空间: Using System.Drawing.Pringing

PrintDocument类的重要属性和方法:
属性:
DocumentName    设置打印文档时要显示的文档名(在打印任务队列中显示)
DefaultPageSettings 打印页面设置
PrinterSettings    打印机设置

方法:
print()    进行打印
事件:
PrintPage     打印时触发的事件,在此事件对应的方法里用Grapics对象设置打印内容

 

例:简单打印出label1.text的内容

 

        private void button1_Click(object sender, EventArgs e)
        {
            //实例化打印对象
            PrintDocument printdoc = new PrintDocument();
            //定义打印对象的事件
            printdoc.PrintPage += new PrintPageEventHandler(printdoc_PrintPage);
            //开始打印
            printdoc.Print();
           
        }

        void printdoc_PrintPage(object sender, PrintPageEventArgs e)
        {
            //设置字体
            Font f=new Font("宋体",20);
            //控制打印是什么内容 label1.text是打印内容 f是字体对象 brushes是填充颜色 10,10是打印到纸上的起始坐标
            e.Graphics.DrawString(label1.Text,f,Brushes.Black,10,10);
        }

 

e.Graphics.DrawString(label1.Text,f,Brushes.Black,10,10); 我们现在来看一下前面这条语句,e.Graphics中的e对象是PrintPageEventArgs 类型的对象,PrintPageEventAgrs参数是专门为PrintPage事件提供数据的对象,是一个系统封装好并传递给你处理的对象。我们已经看到了,这个对象里面有一个Graphics属性,通过这个属性就可以为打印机提供打印内容。除此之外,PrintPageEventArgs参数里还有其他几个常用的重要属性,归纳起来如下:

cancel   设置是否取消打印作业,true为取消打印

HasMorePages 是否打印附加页,true为继续打印下一页,false为只打印当前页

MarginBounds 获取表示边距以内页面部分的矩形区域,返回Rectangle对象

PageBounds 获取表示页面全部区域的矩形区域,返回Rectangle对象

Pagesettings 获取当前页的页设置对象,返回pagesettings对象

PageBounds 可以想象成画图的纸张 MarginBounds想象成画图纸张除掉边缘的作图区域 HasMorePages就是告诉打印机,你是否还有下一页要打印,如果没有就设置为False

 

例:创建一个有打印功能的程序

1.加入控件 PrintDocument   加入打印功能

e.Graphics.DrawString("旺财你好",new Font("宋体",20),brushes.black,10,10);

2.加入控件 PagePreviewDialog   加入预览功能 在document属性加入printDocument 在button中加入printpreviewdialog.showdialog();

3.加入pageSetUpDialog 控件和PrintDialog控件,然后设置这两个控件Document属性为printDocument

4.添加一个打印按钮,在按钮中加入如下代码

            //打印机设置
            if (printDialog.ShowDialog()==DialogResult.OK)
            {
                //页面设置
                if (pageSetupDialog.ShowDialog()==DialogResult.OK)
                {
                    //开始打印
                    printDocument.Print();
                }
            }

posted @ 2012-06-25 20:52  小软狐  阅读(2220)  评论(0编辑  收藏  举报