浅析C#打印和C#打印预览的实现

我们谈到C#打印和C#打印预览的实现其中主要就是包括:页面设置、打印预览、打印三大部分。打印的原理是:生成mdi文件,系统碰到mdi的时候会自动以打印的方式处理。所以,不管用什么模板,什么方式;能在PrintPage事件处理中,生成一张要打印内容的图片就OK了!主要的支持类都包括在命名空间System.Drawing.Printing中,在程序集System.Drawing.dll中实现。C#打印和C#打印预览的实现主要通过PrintDocument类来完成,另外还包括几个辅助类:PrintDialog(打印对话框)、PrintPreviewDialog(打印预览对话框)、PageSetupDialog。

PrintDocument类是实现打印和打印预览的中心类,实际的打印操作是通过这个类来完成的。 使用这个类进行打印的操作过程:

1)创建类实例 PrintDocument printDt = new PrintDocument();

2)设置类实例的属性

3)为该类的打印事件添加事件处理函数

4)调用该类的Print函数进行打印。

打印:printDt.Print();

共有三个与C#打印和C#打印预览的实现有关的属性:

◆DefaultPageSettings:保存了打印文档的默认页面设置,如大小、打印方向,它是一个PageSettings类型的变量。

◆DocumentName:用于设置PrintDocument类实例的名字。是一个string类型的变量。

◆PrinterSettings:包含了打印机的设置信息,可以通过“打印”通用对话框对其进行设置。

在执行打印操作之前,应该对这3个属性进行正确的设置。 PageSettings类和PrinterSettings类 与 PrintDocument类的属性设置相关的类。

PageSettings类指定单个打印页面的设置。

PrinterSettings类包含打印机的设置信息。 这两个类,用户可以对打印机和打印页面进行充分的控制。

C#打印和C#打印预览的实现之处理打印事件PrintDocument类提供了4个事件用来处理打印操作。

◆BeginPrint事件

这个事件在调用Print方法之后,并且在打印第1个页面之前被触发。可以在这个事件中设置应用于所有页面的打印机属性和页面属性,以及使用的字体等参数。

事件代理为PrintEventHandler,事件参数类型为PrintEvnetArgs。在PrintEvnetArgs中包含一个Cancel属性,可以通过这个属性设置为True来禁用打印操作。

This.printDt.BeginPrint +=   
new PrintEventHandler(this.BeginPrinting);  
 
Private void BeginPrinting(object sender, PrintEvnetArgs e)  
 
{//针对开始打印事件进行相应的处理  
 
} 

◆EndPrint事件

这个事件在打印完***一个页面时被触发。可以在这个事件中完成一些资源清理工作。事件代理为PrintEventHandler,事件参数类型为PrintEvnetArgs。

◆PrintPage事件

这个事件在开始打印每一页时被触发,每页的打印都是在这个事件中完成的。用户必须为这个事件提供处理函数,以完成实际的打印操作。

事件代理类型为 PrintPageEvnetHandler,事件参数的类型为PrintPageEventArgs。

printDt.PrintPage +=   
new PrintPageEvnetHandler(this.PrintEveryPage);  
 
private void PrintEveryPage(object sender, PrintPageEventArgs)  
 
{  
 
Graphics gh = e.Graphics;//获取绘图对象  
 
//进行具体的绘画操作  
 
//如 gh.DrawingString(..);  
 
..  
 
If (仍有页面未打印)  
 
e.HasMorePages = true;  
 
else 
 
e.HasMorePages = false;  
 
}  

◆QueryPageSettings事件

这个事件在每个PrintPage事件之前被触发,可以使用这个事件来设置打印每一个页面的页面设置。

事件代理类型为 QueryPageSettingsEventHandler,事件参数的类型为QueryPageSettingsEventArgs。事件参数中包含一个PageSettings属性。

printDt.QueryPageSettings +=   
new QueryPageSettingsEventHandler(this.SetEveryPage);  
 
private void SetEveryPage(object sneder, QueryPageSettingsEventArgs e)  
 
{  
//根据不同的页面来设置e.PageSettings属性  
…  
}  
 
PrintDialog对话框 为了获取打印机的设置信息,.Net框架未用户提供了PrintDialog类。  
 
PrintDialog printDlg = new PrintDialog();  

浅析C#打印和C#打印预览的实现

C#打印和C#打印预览的实现的三大部分:页面设置、打印预览、打印具体用到的类和属性事件都是什么内容呢?那么本文就向你介绍C#打印和C#打印预览的实现具体事宜。作者:w_abc来源:博客园|2009-08-26 09:54 收藏  分享

我们谈到C#打印和C#打印预览的实现其中主要就是包括:页面设置、打印预览、打印三大部分。打印的原理是:生成mdi文件,系统碰到mdi的时候会自动以打印的方式处理。所以,不管用什么模板,什么方式;能在PrintPage事件处理中,生成一张要打印内容的图片就OK了!主要的支持类都包括在命名空间System.Drawing.Printing中,在程序集System.Drawing.dll中实现。C#打印和C#打印预览的实现主要通过PrintDocument类来完成,另外还包括几个辅助类:PrintDialog(打印对话框)、PrintPreviewDialog(打印预览对话框)、PageSetupDialog。

PrintDocument类是实现打印和打印预览的中心类,实际的打印操作是通过这个类来完成的。 使用这个类进行打印的操作过程:

1)创建类实例 PrintDocument printDt = new PrintDocument();

2)设置类实例的属性

3)为该类的打印事件添加事件处理函数

4)调用该类的Print函数进行打印。

打印:printDt.Print();

共有三个与C#打印和C#打印预览的实现有关的属性:

◆DefaultPageSettings:保存了打印文档的默认页面设置,如大小、打印方向,它是一个PageSettings类型的变量。

◆DocumentName:用于设置PrintDocument类实例的名字。是一个string类型的变量。

◆PrinterSettings:包含了打印机的设置信息,可以通过“打印”通用对话框对其进行设置。

在执行打印操作之前,应该对这3个属性进行正确的设置。 PageSettings类和PrinterSettings类 与 PrintDocument类的属性设置相关的类。

PageSettings类指定单个打印页面的设置。

PrinterSettings类包含打印机的设置信息。 这两个类,用户可以对打印机和打印页面进行充分的控制。

C#打印和C#打印预览的实现之处理打印事件PrintDocument类提供了4个事件用来处理打印操作。

◆BeginPrint事件

这个事件在调用Print方法之后,并且在打印第1个页面之前被触发。可以在这个事件中设置应用于所有页面的打印机属性和页面属性,以及使用的字体等参数。

事件代理为PrintEventHandler,事件参数类型为PrintEvnetArgs。在PrintEvnetArgs中包含一个Cancel属性,可以通过这个属性设置为True来禁用打印操作。

This.printDt.BeginPrint +=   new PrintEventHandler(this.BeginPrinting);   Private void BeginPrinting(object sender, PrintEvnetArgs e)   {//针对开始打印事件进行相应的处理   }  

◆EndPrint事件

这个事件在打印完***一个页面时被触发。可以在这个事件中完成一些资源清理工作。事件代理为PrintEventHandler,事件参数类型为PrintEvnetArgs。

◆PrintPage事件

这个事件在开始打印每一页时被触发,每页的打印都是在这个事件中完成的。用户必须为这个事件提供处理函数,以完成实际的打印操作。

事件代理类型为 PrintPageEvnetHandler,事件参数的类型为PrintPageEventArgs。

printDt.PrintPage +=   new PrintPageEvnetHandler(this.PrintEveryPage);   private void PrintEveryPage(object sender, PrintPageEventArgs)   {   Graphics gh = e.Graphics;//获取绘图对象   //进行具体的绘画操作   //如 gh.DrawingString(..);   ..   If (仍有页面未打印)   e.HasMorePages = true;   else  e.HasMorePages = false;   }  

◆QueryPageSettings事件

这个事件在每个PrintPage事件之前被触发,可以使用这个事件来设置打印每一个页面的页面设置。

事件代理类型为 QueryPageSettingsEventHandler,事件参数的类型为QueryPageSettingsEventArgs。事件参数中包含一个PageSettings属性。

printDt.QueryPageSettings +=   new QueryPageSettingsEventHandler(this.SetEveryPage);   private void SetEveryPage(object sneder, QueryPageSettingsEventArgs e)   {  //根据不同的页面来设置e.PageSettings属性  …  }   PrintDialog对话框 为了获取打印机的设置信息,.Net框架未用户提供了PrintDialog类。   PrintDialog printDlg = new PrintDialog();   

在显示“打印”对话框之前,还需要设置它的属性。

其中最重要的一个属性就是Document属性,类型为PrintDocument.,在对话框中所做的任何设置都将保存在这个属性中。

PrinterSettings属性也用来保存用户在对话框中所做的设置。

在显示“打印”对话框之前,必须设置Document和PrinterSettings属性中的一个。

对话框中显示“打印到文件”按钮 AllowPrintToFile属性

显示选择页面范围的控件 AllowSelection属性

是否显示帮助按钮ShowHelp属性

//打印预览  
//PrintPreviewDialog ppd = new PrintPreviewDialog();  
 
PrintDocument pd = new PrintDocument();  
 
//设置边距  
 
Margins margin = new Margins(20, 20, 20, 20);  
 
pd.DefaultPageSettings.Margins = margin;  
 
////纸张设置默认  
//PaperSize pageSize = new PaperSize("First custom size", 800, 600);  
//pd.DefaultPageSettings.PaperSize = pageSize;  
//打印事件设置  
 
pd.PrintPage += new PrintPageEventHandler(this.pd_PrintPage);  

C#打印和C#打印预览的实现的基本内容就向你介绍到这里,希望对你了解和学习C#打印和C#打印预览的实现方面的编程有所帮助。

赞(0) 打赏
未经允许不得转载:TaKaSa » 浅析C#打印和C#打印预览的实现

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
  • Q Q(选填)

赞助下

支付宝扫一扫打赏

微信扫一扫打赏