TPDFlibViewer

檢視器

說明

本頁說明 PDFlibPas「檢視器」主題下的 TPDFlibViewer 控制項。API 名稱、參數、類別名稱、檔案名稱及字面值均保持原樣,與 Delphi 函式庫完全對應。

TPDFlibViewer(單元 Lib\PDFlibViewer.pas)是一個 VCL 捲動控制項,可在應用程式中顯示 PDF 頁面。它透過 TPDFlib 使用的相同引擎(GDI+、Cairo 或 PDFium,依附加實體的 SelectRenderer 設定)進行彩現。

主要成員

Function LoadFromFile(Const FileName, Password: WideString): Integer;
Procedure AttachLibrary(ALib: TPDFlib);
Procedure CloseDocument;
Function PageCount: Integer;
Function GoToPage(NewPage: Integer): Integer;
Function NextPage: Integer;
Function PrevPage: Integer;
Procedure SetZoomPercent(Percent: Double);
Procedure SetZoomMode(Mode: TPDFlibViewerZoomMode);
Procedure SetDisplayMode(Mode: TPDFlibViewerDisplayMode);
Procedure SetCacheLimit(MegaBytes: Integer);
Procedure RefreshPage;
Function LinkActionAtPagePoint(APage: Integer; XPos, YPos: Double; Out Info: TPDFlibActionInfo): Integer;
Function GetTextInRegion(APage: Integer; XPos, YPos, RWidth, RHeight: Double): WideString;
Function CopySelectedText: Integer;
Property SelectedText: WideString;
Property Page: Integer;
Property DisplayMode: TPDFlibViewerDisplayMode;
Property OnPageChange: TPDFlibViewerPageChange;
Property OnLinkClick: TPDFlibViewerLinkClick;

備註

LoadFromFile 透過控制項自有的 TPDFlib 實體開啟文件;AttachLibrary 則顯示由呼叫端管理的實體(呼叫端保留擁有權)所選取的文件。縮放模式包含固定百分比(zmPercent,透過 SetZoomPercent 設定)、適合寬度(zmFitWidth,預設值)和適合頁面(zmFitPage);適合模式在控制項調整大小時自動重新計算。導覽會鉗制在文件的頁面範圍內,且僅在可見頁面實際變更時才觸發 OnPageChangeSetDisplayMode 可在單頁顯示(dmSinglePage,預設值)和連續垂直捲動整份文件(dmContinuous)之間切換;連續模式下只彩現視窗中可見的頁面,當前頁面會跟隨捲動位置更新。彩現後的頁面儲存於最近最少使用(LRU)點陣圖快取中(預設 128 MB,可透過 SetCacheLimit 調整),因此往回捲動時不需重新彩現。滑鼠滾輪垂直捲動;PageUp/PageDown、方向鍵、Home 和 End 可導覽頁面。相鄰頁面會在背景執行緒預先彩現,使翻頁幾乎即時完成。點擊連結註釋時會觸發 OnLinkClick,帶出頁碼與有類型的動作摘要(TPDFlibActionInfo:網址、文件目的地、具名動作等);LinkActionAtPagePoint 直接提供命中測試功能,座標使用 GetAnnotRectEx 回報的同一使用者空間。按住左鍵拖曳可選取文字(點擊連結則觸發連結而非選取);Ctrl+C 或 CopySelectedText 複製選取內容,GetTextInRegion 以程式方式執行相同的區塊查詢。配套控制項 TPDFlibOutlineViewer 可在檢視器旁顯示書籤樹狀結構:呼叫其 AttachViewer 傳入檢視器實體後,點擊書籤即可導覽至目標頁面。TPDFlibSearchPanel 以相同方式附加:RunSearch 列出文件中每個命中項目的頁碼與符合文字,點擊即跳至對應頁面。TPDFlibThumbnailBar 以延遲彩現的縮圖完成整套控制項家族;點擊縮圖可導覽至對應頁面。若要在設計時從 losLab PDF 元件頁面拖放控制項,請安裝設計時套件 Package\PDFlibViewerPkg.dpk