廖夢(mèng)虎
(武漢鐵路職業(yè)技術(shù)學(xué)院,湖北武漢 430205)
PDF(Portable Document Format,可移植文檔格式)是目前廣泛應(yīng)用的一種與操作系統(tǒng)無(wú)關(guān)的電子文檔格式,是數(shù)字化信息事實(shí)上的工業(yè)標(biāo)準(zhǔn)。但PDF文檔必須借助PDF閱讀器才能閱讀,這給需要在應(yīng)用程序中直接閱讀的用戶帶來(lái)了不便。針對(duì)此問(wèn)題,作者在使用PowerBuilder開(kāi)發(fā)項(xiàng)目過(guò)程中利用FoxitReader SDK(ActiveX)控件實(shí)現(xiàn)了PDF文檔的顯示,用戶在沒(méi)有安裝閱讀器的情況下,也可以瀏覽PDF文檔了[1]。
Foxit Reader SDK控件是一個(gè)獨(dú)立的文件(控件名:FoxitReader_ax_pro.ocx),可以從www.foxitsoftware.com網(wǎng)站上免費(fèi)下載。
PowerBuilder中使用Foxit Reader SDK控件,是通過(guò)OLE[2]對(duì)象鏈接控件的。在使用OLE(Object Linking and Embedding,對(duì)象鏈接與嵌入)對(duì)象鏈接控件前,須先注冊(cè)該控件。注冊(cè)控件既可使用Windows提供的注冊(cè)命令(regsvr32),也可在PowerBuilder的窗口畫板中實(shí)現(xiàn)注冊(cè)。PowerBuilder中注冊(cè)控件的方法是:在Power-Builder的窗口畫板中單擊PowerBuilder控件箱中OLE圖標(biāo),出現(xiàn)“插入對(duì)象”對(duì)話框,單擊“Register New…”按鈕,從打開(kāi)的“Browse”對(duì)話框中選擇FoxitReader_ax_pro.ocx控件,然后單擊“打開(kāi)”按鈕,完成FoxitReader_ax_pro.ocx控件的注冊(cè)。
注冊(cè)FoxitReader_ax_pro.ocx控件后在“Insert Control”選項(xiàng)卡的“Control Type”列表框中顯示如圖1所示[3]。
為了去掉FoxitReader SDK控件帶有的默認(rèn)外觀,需對(duì)該對(duì)象進(jìn)行初始化設(shè)置。
初始化代碼如下:
SDK中使用OpenFile讀入PDF文檔,CloseFile關(guān)閉PDF文檔,Save保存當(dāng)前文檔。
讀入PDF文檔:
瀏覽PDF文檔過(guò)程中需要瀏覽指定的頁(yè)面,如轉(zhuǎn)到“上一頁(yè)”、“下一頁(yè)”、“首頁(yè)”和“最后一頁(yè)”。SDK中使用如下代碼完成跳轉(zhuǎn):
注意:SDK中PDF文檔的頁(yè)碼是從0開(kāi)始的,為了不使轉(zhuǎn)到?jīng)]有的頁(yè)碼,通常使用Page-Count獲得PDF文檔的總頁(yè)碼,而使用CurPage獲得當(dāng)前頁(yè)。
瀏覽PDF文檔時(shí),根據(jù)需要調(diào)整頁(yè)面的大小,如果是生成或轉(zhuǎn)換的PDF文檔(掃描的PDF文檔除外),其文字縮放無(wú)任何失真。FoxitReader SDK控件中使用ZoomLevel調(diào)整PDF文檔閱讀頁(yè)面的方法。
下面的代碼是實(shí)現(xiàn)PDF文檔閱讀頁(yè)面逐次放大。
下面的代碼是實(shí)現(xiàn)PDF文檔閱讀頁(yè)面逐次縮小。
如圖2是一個(gè)用于閱讀PDF文檔的窗口,窗口中包括首頁(yè)、前一頁(yè)、下一頁(yè)、末頁(yè)、放大、縮小、打開(kāi)文件按鈕,窗口的標(biāo)題欄中顯示打開(kāi)的PDF文檔名稱。
圖2 閱讀器示例
初始化及首頁(yè)、前一頁(yè)、下一頁(yè)、末頁(yè)、放大、縮小按鈕代碼如上所述,“打開(kāi)文件”按鈕代碼如下:
OLE是Windows系統(tǒng)中允許應(yīng)用程序共享數(shù)據(jù)和程序功能的一種標(biāo)準(zhǔn)的便利方法。在PowerBuilder中充分使用OLE對(duì)象鏈接控件,非常方便地實(shí)現(xiàn)系統(tǒng)的功能。本文通過(guò)OLE對(duì)象鏈接Foxit Reader SDK(ActiveX)控件,實(shí)現(xiàn)了在程序中就能閱讀PDF文檔的功能,無(wú)需切換窗口,非常方便。
1 路遙.PDF文件閱讀器[J].電腦編程技巧與維護(hù),2007.7
2 百度百科,http://baike.baidu.com/view/118545.htm,2011-12-30
3 向隅.新編PowerBuilder程序設(shè)計(jì)實(shí)例教程[M].北京:清化大學(xué)出版社,2009