怎样用C 实现完整文档打印功能

分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.youkuaiyun.com/jiangjunshow

也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!

                 
发表:联高软件www.legalsoft.com.cn,本文被阅读: 5208

摘要:文章:怎样用C#实现完整文档打印功能 摘要:打印功能都以组件的方式提供,为程序员提供了很大的方便,但是这几个组件的使用还是很复杂的,有必要解释一下。打印操作通常包括,发表于北京联高软件有限公司技术文章栏目,代码以高亮显示。
关键字:打印, 文档, 功能, printdocument, 设置, code, new, printdialog, 属性, 页面, printpage, void, csharp, printpreviewdialog, pagesetupdialog, 参数

打印功能都以组件的方式提供,为程序员提供了很大的方便,但是这几个组件的使用还是很复杂的,有必要解释一下。
打印操作通常包括以下四个功能
1 打印设置 设置打印机的一些参数比如更改打印机驱动程序等
2 页面设置 设置页面大小纸张类型等
3 打印预览 类似于word中的打印预览
4 打印

下面我把我编写的记事本中用到的打印功能的代码进行解释希望能给大家一些帮助
实现打印功能的核心是PrintDocument类这个类属于System.Drawing.Printing名字空间这个类封装了当前的打印设置页面设置以及所
有的与打印有关的事件和方法
这个类包括以下几个属性 事件 和方法

1、PrinterSettings 属性
存放打印机的设置信息这个属性不需要程序员设置因为它是由打印对话框获取的
2、PrintCountroller 属性
控制打印过程
3、DefaultPageSettings 属性
存放页面设置信息 打印纸大小方向等也不需要程序员设置因为它是由页面设置对话框获取的
4、DocumentName 属性
指定文档名称,出现在打印机状态窗口中

1。 BeginPrint事件
在打印之前发出
2. PrintPage事件
每打印一页是发出,事件接受一个PrintPageEventArgs参数该参数封装了打印相关的信息
PrintPageEventArgs参数有很多重要的属性
1 Cancel 取消打印
2 Graphics 页面的绘图对象
3 HasMorePages 是否还有要打印的页面
Print 方法 该方法没有参数 调用它将按照当前设置开始打印
若实现打印功能首先构造PrintDocument对象添加打印事件
  1. PrintDocument printDocument;   
  2. private void InitializeComponent()   
  3. {   
  4. ...   
  5. printDocument=new PrintDocument();   
  6. printDocument.PrintPage += new PrintPageEventHandler (this.printDocument_PrintPage);   
  7. ...   
  8. }  
[csharp] view plain copy print ?
  1. PrintDocument printDocument;private void InitializeComponent(){...printDocument=new PrintDocument();printDocument.PrintPage += new PrintPageEventHandler (this.printDocument_PrintPage);...}  
PrintDocument printDocument;private void InitializeComponent(){...printDocument=new PrintDocument();printDocument.PrintPage += new PrintPageEventHandler (this.printDocument_PrintPage);...}
实现打印事件功能
打印和绘图类似都是调用Graphics 类的方法进行画图 不同的是一个在显示器上一个在打印纸上并且打印要进行一些复杂的计算
如换行 分页等。
  1. private void printDocument_PrintPage(object sender,PrintPageEventArgs e)   
  2. {   
  3.    Graphics g = e.Graphics; //获得绘图对象  
  4.    float linesPerPage = 0; //页面的行号  
  5.    float yPosition = 0;   //绘制字符串的纵向位置  
  6.    int count = 0; //行计数器  
  7.    float
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值