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