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

技术如何浅析C#打印和C#打印预览的实现如何浅析C#打印和C#打印预览的实现,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。我们谈到C#打印和

如何分析C#打印和C#打印预览的实现,很多新手对此不是很清楚。为了帮助大家解决这个问题,下面小编就为大家详细讲解一下。需要的人可以从中学习,希望你能有所收获。

我们来说说C#打印和C#打印预览的实现,主要包括三个部分:页面设置、打印预览和打印。打印的原理是:生成mdi文件,当系统遇到mdi时,会通过打印自动处理。所以,无论使用什么样的模板或方法;在PrintPage的事件处理中生成要打印的内容的图片就可以了!的主要支持类包含在命名空间系统中。绘图。打印并在System.Drawing.dll装配中实现。C#打印和C#打印预览的实现主要由PrintDocument类完成,还包括几个辅助类:PrintDialog、PrintPreviewDialog和PageSetupDialog。

打印类是实现打印和打印预览的中心类,实际的打印操作都是通过这个类来完成的。本类打印操作流程:

1)创建一个类实例print document prindt=new print document();

2)设置类实例的属性。

3)为这个类的打印事件添加一个事件处理函数。

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

打印:printDt。print();

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

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

DocumentName:用于设置PrintDocument类实例的名称。是字符串类型的变量。

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

打印前应正确设置这三个属性。PageSettings类和PrinterSettings类是与PrintDocument类的属性设置相关的类。

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

PrinterSettings类包含打印机的设置信息。在这两个类中,用户可以完全控制打印机和打印页面。

C#打印和C#打印预览打印事件的处理打印文档类提供了四个事件来处理打印操作。

BeginPrint事件

此事件在调用Print方法之后和打印第一页之前触发。在这种情况下,您可以设置参数,如应用于所有页面的打印机属性和页面属性,以及使用的字体。

事件代理是PrintEventHandler,事件参数类型是PrintEvnetArgs。PrintEvnetArgs中有一个“取消”属性,可以设置为“真”以禁用打印操作。

this . printdt . BeginPrint=NewPrintEventHandler(this。beginpriting);PrivateVoidbeginprinting(对象发送方,printeventeargse){//相应处理开始打印事件}结束打印事件

打印页面时会触发此事件。在这种情况下,可以进行一些资源清理。事件代理是PrintEventHandler,事件参数类型是PrintEvnetArgs。

打印页面事件

打印每页时触发此事件,每页的打印在此事件中完成。用户必须为此事件提供一个处理程序来完成实际的打印操作。

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

printDt。PrintPage=new printpageevnethandler(这。printeeverypage);privatedvoitprinteeverypage(object sender,PrintPageEventArgs){ Graphics GH=e . Graphics;//获取绘图对象//执行特定的绘图操作//例如gh。DrawingString(.);如果(仍有页面未打印)e . HasMorePages=true埃尔

se  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#打印预览的实现方面的编程有所帮助。

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注行业资讯频道,感谢您对的支持。

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/113754.html

(0)

相关推荐

  • Apache Hudi使用是怎么样的

    技术Apache Hudi使用是怎么样的Apache Hudi使用是怎么样的,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。]数据实时处理和实时的数据实时分为

    攻略 2021年11月23日
  • 数据库读写分离的坑有哪些

    技术数据库读写分离的坑有哪些这篇文章主要讲解了“数据库读写分离的坑有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“数据库读写分离的坑有哪些”吧!前言事情是这样的,刚入

    攻略 2021年10月22日
  • 内衣码数对照表,胸罩分为哪几个等级,哪个最大

    技术内衣码数对照表,胸罩分为哪几个等级,哪个最大1.罩杯尺寸罩杯尺寸=胸围-下胸围(例如内衣码数对照表:10cm=A罩杯.13cm=B罩杯.15cm=C罩杯18cm=D罩杯.20cm=E罩杯)
    胸罩罩杯尺寸说明表
    罩杯型

    生活 2021年10月24日
  • 现代云架构中的AWS服务器群和数据库是怎么样的

    技术现代云架构中的AWS服务器群和数据库是怎么样的这篇文章给大家介绍现代云架构中的AWS服务器群和数据库是怎么样的,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。当今云计算技术成了主流的架构和互联网基

    攻略 2021年12月2日
  • Python怎么抓取京东商城评价

    技术Python怎么抓取京东商城评价这篇文章主要讲解了“Python怎么抓取京东商城评价”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python怎么抓取京东商城评价”吧

    攻略 2021年12月1日
  • 罐装奶粉打开了多久不能吃,婴儿奶粉开封后多久不能吃

    技术罐装奶粉打开了多久不能吃,婴儿奶粉开封后多久不能吃很多宝妈跟题主一样罐装奶粉打开了多久不能吃,对奶粉的保质期有疑问——奶粉吃不完是不是就不能吃了呢?是不是就变质了呢?众所周知,婴幼儿奶粉营养丰富,蛋白质含量高,而丰富

    生活 2021年10月31日