全面解析C实现打印功能.docVIP

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
全面解析C实现打印功能

全面解析C#实现打印功能 C#实现打印功能所牵扯上的具体的操作以及常用属性的介绍是什么呢?C#实现打印功能的实例实现又是什么样的呢?那么全面解析C#实现打印功能这篇文章就向你整体介绍具体内容。 在Windows应用程序中C#实现打印功能对于文档编程是一项非常重要的功能,在以前是非常复杂的工作,Microsoft .net Framework的打印功能都以组件的方式提供,但是这几个组件的使用还是很复杂的,下面我们一一介绍: C#实现打印功能操作通常包括以下四个功能。 1、打印设置 设置打印机的一些参数比如更改打印机驱动程序等。 2、页面设置 设置页面大小纸张类型等。 3、打印预览 类似于word中的打印预览。 4、打印。 下面就向你具体介绍操作的步骤。 实现打印功能的核心是PrintDocument类这个类属于System.Drawing.Printing名字空间这个类封装了当前的打印设置页面设置以及所有的与打印有关的事件和方法这个类包括以下几个属性、事件和方法: 1、PrinterSettings 属性 存放打印机的设置信息。这个属性不需要程序员设置因为它是由打印对话框获取的 2、PrintCountroller 属性 控制打印过程 3、DefaultPageSettings 属性 存放页面设置信息。打印纸大小方向等也不需要程序员设置因为它是由页面设置对话框获取的 4、DocumentName 属性 指定文档名称,出现在打印机状态窗口中 1、BeginPrint事件 在打印之前发出 2、PrintPage事件 每打印一页是发出,事件接受一个PrintPageEventArgs参数该参数封装了打印相关的信息 C#实现打印功能PrintPageEventArgs参数有很多重要的属性 1、Cancel 取消打印 2、Graphics 页面的绘图对象 3、HasMorePages 是否还有要打印的页面 Print 方法 该方法没有参数 调用它将按照当前设置开始打印 若实现打印功能首先构造PrintDocument对象添加打印事件: PrintDocument printDocument; private void InitializeComponent ... printDocument new PrintDocument ; printDocument.PrintPage + new PrintPageEventHandler this.printDocument_PrintPage ; ... C#实现打印功能之打印事件功能 打印和绘图类似都是调用Graphics 类的方法进行画图 不同的是一个在显示器上一个在打印纸上并且打印要进行一些复杂的计算 如换行 分页等。 private void printDocument_PrintPage object sender,PrintPageEventArgs e Graphics g e.Graphics; //获得绘图对象 float linesPerPage 0; //页面的行号 float yPosition 0; //绘制字符串的纵向位置 int count 0; //行计数器 float leftMargin e.MarginBounds.Left; //左边距 float topMargin e.MarginBounds.Top; //上边距 string line null;//行字符串 Font printFont this.textBox.Font; //当前的打印字体 SolidBrush myBrush new SolidBrush Color.Black ;//刷子 linesPerPage e.MarginBounds.Height / printFont.GetHeight g ; //每页可打印的行数 //逐行的循环打印一页 while count linesPerPage line lineReader.ReadLine ! null yPosition topMargin + count * printFont.GetHeight g ; g.DrawString line, printFont, myBrush, leftMargin, yPosition, new StringFormat ; count++; 如果本页打印完成而line不为空说明还有没完成的页面这将触发下一次的打印事件 在下一次的打印中lineReader会自动读取上次没有打印完的内容 因为lineReader是这个打印方法外的类的成员它可以记录当前读取的位置。if

文档评论(0)

haocen + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档