PowerBuilder平台下利用OLE控件阅读PDF文件的实现方法

2012-08-01 08:46:36廖梦虎
武汉船舶职业技术学院学报 2012年3期
关键词:阅读器控件页码

廖梦虎

(武汉铁路职业技术学院,湖北武汉 430205)

PDF(Portable Document Format,可移植文档格式)是目前广泛应用的一种与操作系统无关的电子文档格式,是数字化信息事实上的工业标准。但PDF文档必须借助PDF阅读器才能阅读,这给需要在应用程序中直接阅读的用户带来了不便。针对此问题,作者在使用PowerBuilder开发项目过程中利用FoxitReader SDK(ActiveX)控件实现了PDF文档的显示,用户在没有安装阅读器的情况下,也可以浏览PDF文档了[1]。

Foxit Reader SDK控件是一个独立的文件(控件名:FoxitReader_ax_pro.ocx),可以从www.foxitsoftware.com网站上免费下载。

1 PowerBuider中添加PDF控件

PowerBuilder中使用Foxit Reader SDK控件,是通过OLE[2]对象链接控件的。在使用OLE(Object Linking and Embedding,对象链接与嵌入)对象链接控件前,须先注册该控件。注册控件既可使用Windows提供的注册命令(regsvr32),也可在PowerBuilder的窗口画板中实现注册。PowerBuilder中注册控件的方法是:在Power-Builder的窗口画板中单击PowerBuilder控件箱中OLE图标,出现“插入对象”对话框,单击“Register New…”按钮,从打开的“Browse”对话框中选择FoxitReader_ax_pro.ocx控件,然后单击“打开”按钮,完成FoxitReader_ax_pro.ocx控件的注册。

注册FoxitReader_ax_pro.ocx控件后在“Insert Control”选项卡的“Control Type”列表框中显示如图1所示[3]。

2 基本功能

2.1 初始化设置

为了去掉FoxitReader SDK控件带有的默认外观,需对该对象进行初始化设置。

初始化代码如下:

2.2 打开、关闭及保存PDF文档

SDK中使用OpenFile读入PDF文档,CloseFile关闭PDF文档,Save保存当前文档。

读入PDF文档:

2.3 跳转到指定的PDF文档页面

浏览PDF文档过程中需要浏览指定的页面,如转到“上一页”、“下一页”、“首页”和“最后一页”。SDK中使用如下代码完成跳转:

注意:SDK中PDF文档的页码是从0开始的,为了不使转到没有的页码,通常使用Page-Count获得PDF文档的总页码,而使用CurPage获得当前页。

2.4 页面的放大和缩小

浏览PDF文档时,根据需要调整页面的大小,如果是生成或转换的PDF文档(扫描的PDF文档除外),其文字缩放无任何失真。FoxitReader SDK控件中使用ZoomLevel调整PDF文档阅读页面的方法。

下面的代码是实现PDF文档阅读页面逐次放大。

下面的代码是实现PDF文档阅读页面逐次缩小。

3 FoxitReader SDK控件示例

如图2是一个用于阅读PDF文档的窗口,窗口中包括首页、前一页、下一页、末页、放大、缩小、打开文件按钮,窗口的标题栏中显示打开的PDF文档名称。

图2 阅读器示例

初始化及首页、前一页、下一页、末页、放大、缩小按钮代码如上所述,“打开文件”按钮代码如下:

4 结 语

OLE是Windows系统中允许应用程序共享数据和程序功能的一种标准的便利方法。在PowerBuilder中充分使用OLE对象链接控件,非常方便地实现系统的功能。本文通过OLE对象链接Foxit Reader SDK(ActiveX)控件,实现了在程序中就能阅读PDF文档的功能,无需切换窗口,非常方便。

1 路遥.PDF文件阅读器[J].电脑编程技巧与维护,2007.7

2 百度百科,http://baike.baidu.com/view/118545.htm,2011-12-30

3 向隅.新编PowerBuilder程序设计实例教程[M].北京:清化大学出版社,2009

猜你喜欢
阅读器控件页码
基于反向权重的阅读器防碰撞算法
Nonlinear Dynamic Analysis and Fatigue Study of Steep Wave Risers Under Irregular Loads
CONTENTS OF 2020
特种油气藏(2020年6期)2020-01-05 10:24:40
一种高效的RFID系统冗余阅读器消除算法
关于.net控件数组的探讨
软件(2018年7期)2018-08-13 09:44:42
Consequences of early adverse rearing experience(EARE) on development: insights from non-human primate studies
算页码
小学生导刊(2016年2期)2016-11-11 06:09:10
一种RFID网络系统中消除冗余阅读器的高效算法
盲人阅读器
就这样玩会VBA中常见的自定义控件
电脑迷(2012年24期)2012-04-29 00:44:03