Microsoft.net 自定义打印简单报表
Microsoft.net出现后,一直就没有提供一个直接可以打印的控件给我们.net开发人员使用,这一点上来说,Microsoft 就不如Delphi,PB了,但不知道在2.0里面有没有现成的控件可以用,至少1.14版本中是没有,不管怎么样,利用其它第三方控件总感觉很不舒服,看它的代码就得看上一段时间,哎,咱们苦命汉,还是自己写个简单的凑合着用吧。
那好,我们就这样开始吧!
第一步:当然大家也都知道,首先得拖上俩控件:PrintDocument,PrintPreviewDialog
示意图:
当得到这个界面的时候,基本的工作都完成了,那么我们现在需要做的是,向里面添加一些打印需要调用的函数及函数代码,有必要对它进行一个类的封装。
我们先来看看它的简单的流程:
1. 打印预览:
private void button1_Click(object sender, System.EventArgs e)
{
printDrawing = new PrintDrawing(listView1);//打印类的实例化
printPreviewDialog1.Document = printDocument1;//设置预览的打印文档
printPreviewDialog1.Document.DefaultPageSettings.Landscape = true;//设置为横打
printPreviewDialog1.ShowDialog();//显示预览框
}
{
printDrawing = new PrintDrawing(listView1);//打印类的实例化
printPreviewDialog1.Document = printDocument1;//设置预览的打印文档
printPreviewDialog1.Document.DefaultPageSettings.Landscape = true;//设置为横打
printPreviewDialog1.ShowDialog();//显示预览框
}
2. 打印每一页时进行调用:
private void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
{
if( printDrawing == null )
printDrawing = new PrintDrawing(listView1);//打印类的实例化
printDrawing.DrawingBegin(e);//对每一页的内容进行绘制
}
{
if( printDrawing == null )
printDrawing = new PrintDrawing(listView1);//打印类的实例化
printDrawing.DrawingBegin(e);//对每一页的内容进行绘制
}
第二步就是写一个打印的类:
这个么,就略去了,看代码吧。 (请到文章底部找下载)
第三步:看效果:)
(1)
(2)