网站大量收购独家精品文档,联系QQ:2885784924

RTF技术扩展-如何实现完美分页打印.doc

  1. 1、本文档共12页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
RTF技术扩展 - 如何实现完美的分页打印 摘要: 本文给出了一种完美实现RTF文件分页打印的方法,并根据此方法实现了的打印预览及打印。通过本方法实现的RTFWYSIWYG(所见即所得)显示、分页预览及分页打印三者在效果上完全一致,解决了以前预览与打印存在偏差的问题,无论在分页速度和效果上均取得了突破。关键字:RTF、Rich Text Format、分页、打印。 一、RTF文件的分页算法一致是困扰已久的话题,以前我的方法是采用逐行计算行高然后再手工分页的方法,该方法有很多不足之处: 正在计算的行必须在屏幕可视范围内; 每行的左缩进位置必须为正数; 逐行计算采用模拟键盘操作进行,速度很慢; 手工计算存在一些误差 综上几点原因,旧的分页算法存在稳定性差和计算不精确等问题,因此分页结果常常出现偏差。。、向Rich Edit控件发送EM_FORMATRANGE消息来将其输出重定向到指定设备,比如打印机。也可以指定一个用于Rich Text文本格式化的输出设备。使用EM_SETTARGETDEVICE消息来指定一个用于Rich Text文本格式化的目标设备。该消息WYSIWYG(所见即所得)模式,在该模式下应用程序采用默认打印机字体规格而非屏幕字体规格来定位文本。WYSIWYG(所见即所得)目标设备EM_FORMATRANGE 消息 EM_FORMATRANGE 消息用于为指定设备格式化一定范围的文本,用于Rich Edit控件。 语法: 发送该消息,采用如下方法调用 SendMessage 函数: lResult?=?SendMessage( ???? //?返回结果值?LRESULT ???(HWND) hWndControl, ???? // 目标控件句柄 ???(UINT) EM_FORMATRANGE, ???? // 消息ID ???(WPARAM)?wParam, ???? //?=?(WPARAM)?()?wParam; ???(LPARAM)?lParam ???? //?=?(LPARAM)?()?lParam; ); 参数: wParam 表示是否渲染文本。如果该参数为非0值,文本将被渲染;否则,文本仅仅被测量(不做实际渲染)。 lParam 指向一个 FORMATRANGE 结构体,该结构体包含输出设备相关信息,或者为NULL用于释放目标控件所绑定的信息。 返回值: 该消息返回适合该区域的最后一个字符位置,加1。 注释: 该消息通常与EM_DISPLAYBAND消息搭配,用于为输出设备诸如打印机等格式化Rich Edit控件中的内容。 非常重要的是,在你最后一次使用该消息后需要为lParam参数指定NULL值来释放所绑定的信息。另外,一旦你在某个设备使用该消息后,如果需要在不同设备再使用该消息,同样你必须先释放所绑定的信息。 消息信息: 头文件 Richedit.h 操作系统 Windows?95, Windows NT?4.0 参见: Rich Edit Controls, EM_DISPLAYBAND, FORMATRANGE FORMATRANGE 结构体 FORMATRANGE结构体包含用于Rich Edit控件格式化其输出到指定设备的相关信息。该结构体用于EM_FORMATRANGE消息。 语法: typedef struct _formatrange?{ HDC?hdc; HDC?hdcTarget; RECT?rc; RECT?rcPage; CHARRANGE?chrg; } FORMATRANGE; 成员: hdc 渲染设备句柄。 hdcTarget 目标设备句柄。 rc 渲染区域,单位:缇。 rcPage 渲染设备的整体区域,单位:缇。 chrg CHARRANGE 结构体,表示用于格式化的文本范围。 结构体信息: 头文件 Richedit.h 操作系统 Windows?95, Windows NT?4.0 参见: Rich Edit Controls, EM_FORMATRANGE EM_DISPLAYBAND 消息 EM_DISPLAYBAND消息用于显示Rich Edit控件的一部分内容,该文本采用前面EM_FORMATRANGE消息所指定的设备来格式化。 语法: 发送该消息,采用如下方法调用 SendMessage 函数 lResult?=?SendMessage( ???? //?返回结果值?LRESULT ???(HWND) hWndControl, ???? // 目标控件句柄 ???(UINT) EM_DISPLAYBAND, // 消息 ID ???(WPARAM)?wPar

文档评论(0)

187****5045 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档