C#打印控件

开发 后端
本文主要介绍了C#中的打印控件,PrintDialog、PageSetupDialog、PrintDocument、PrintPeviewControl、PrintPreviewDialog,一起来看。

WinForm中的打印可通过使用.Net提供的打印类完成,也可以使用C#提供的支持打印的控件。

打印控件默认放在工具箱的“打印”项中,共有5个组件共同完成打印功能,包括PrintDialog、PageSetupDialog、PrintDocument、PrintPeviewControl、PrintPreviewDialog。

1、PrintDocument

PrintDocument是主要打印控件,打印时必须添加,它是对PrintDocument类的实现,通过它的PrintPage事件可以设置打印内容。

2、PrintDialog

PrintDialog提供打印机设置对话框,具有Document属性和ShowDialog方法,将其Document属性设置为PrintDocument对象即可。

3、PageSetupDialog

PageSetupDialog控件提供页面设置对话框,常用的页面设置元素有纸张、方向和页边距。

4、PrintPreviewDialog

PrintPreviewDialog提供标准的打印预览对话框,用于显示文档的打印效果。该控件包含用于打印、放大、显示一页或多页的按钮。该控件的关键属性Document与PrintDialog控件的相同,用于设置要预览的文档,此文档必须是PrintDocument对象。

5、PrintPreviewControl

PrintPreviewControl帮助定制打印预览对话框,可以显示文档的打印效果,没有按钮和其他用户界面元素。该控件常用于打印预览用户界面,而PrintPreviewDialog控件用于标准用户界面。

使用打印控件的步骤如下:

(1)编写打印逻辑步骤处理PrintDocument的一些事件。

调用其Print()方法时,将依据下面的排列顺序,依次触发。

BeginPrint

PrintPage

EndPrint

(2)选择打印机。

在打印对话框(PrintDialog)中选择打印机。必须使用PrintDocument控件将其传递到打印机的PrintDialog控件中。

(3)选择页面设置。

用户选择了打印机,准备打印时,允许用户选择页面设置。创建一个PageSetupDialog控件,并将PageSettings实例传递到该控件中,使用户可以操纵页面设置。

(4)显示打印预览窗口。

添加PrintPreviewDialog控件,将PrintDocument控件传递给PrintPreview的Document属性。

打印控件用例

我们用上节的项目完成打印功能,在窗体中添加PrintDocument、PrintPreviewDialog、PrintDialog控件,分别编写“打印组件使用示例”

 

 

  1. private void 打印PToolStripMenuItem_Click(object sender, EventArgs e)  
  2. {  
  3. this.printDialog1.Document = this.printDocument1;  
  4. if (this.printDialog1.ShowDialog() == DialogResult.OK)  
  5. {  
  6. try 
  7. {  
  8. this.printDocument1.Print();  
  9. }  
  10. catch (Exception ex)  
  11. {  
  12. MessageBox.Show(ex.Message,"打印出错");  
  13. }  
  14. }  
  15. }  
  16. private void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)  
  17. {  
  18. Graphics g = e.Graphics;  
  19. string[] str = this.richTextBox1.Text.Split('\n');  
  20. int i=0;  
  21. foreach (string s in str)  
  22. {  
  23. g.DrawString(str[i], this.fontDialog1.Font, new SolidBrush(this.richTextBox1.ForeColor),new PointF(100,80+this.richTextBox1.Font.Height*i));  
  24. i++;  
  25. }  
  26. }  
  27. private void 打印预览VToolStripMenuItem_Click(object sender, EventArgs e)  
  28. {  
  29. this.printPreviewDialog1.Document = this.printDocument1;  
  30. try 
  31. {  
  32. this.printPreviewDialog1.ShowDialog();  
  33. }  
  34. catch (Exception ex)  
  35. {  
  36. MessageBox.Show(ex.Message, "打印出错");  
  37. }  

通过本文的介绍,关于C#中的打印控件,你肯定有了一定的了解。希望对你有帮助。

【编辑推荐】

  1. 关于C#代码规范的两点疑惑
  2. 1.2.5 C++和C#不得不说的那点事儿
  3. 用C#实现HTTP协议下的多线程文件传输
  4. C#基础概念之事件
  5. 利用C#实现任务栏通知窗口
责任编辑:于铁 来源: 百度空间
相关推荐

2009-08-26 13:36:33

C#打印控件

2009-08-26 09:54:45

C#打印预览C#打印

2009-08-11 14:45:41

C# DataGrid

2009-08-18 17:41:22

C# ListView

2009-08-19 11:21:02

C# ListBox控

2009-08-24 11:23:41

C# TimeLabe

2009-08-14 14:19:50

Enhanced LiC#构建

2009-08-24 10:10:09

C#复合控件

2009-08-24 18:21:23

C# ListView

2009-08-19 15:30:40

C#复合控件构建

2009-08-21 17:55:52

C#复合控件

2009-08-06 16:58:40

C#编写ActiveX

2009-08-12 10:35:50

C#调用ActiveX

2009-08-21 15:27:11

C# DataGrid

2009-09-04 17:58:38

C# Web Brow

2009-08-28 15:05:35

C#编写Calenda

2009-09-27 10:46:30

C#控件数组

2009-09-09 21:56:29

2009-08-27 14:32:15

C#编写ActiveX

2009-09-16 10:56:22

C#开发ActiveX
点赞
收藏

51CTO技术栈公众号