• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

c#打印和报表

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

使用打印方法时,要先引用命名空间: 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();
                }
            }

使用打印方法时,要先引用命名空间: 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();
                }
            }


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C#调用托管C++类(DLL)发布时间:2022-07-18
下一篇:
C#中使用AOP发布时间:2022-07-18
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap