TPDFlibViewer

ビューアー

説明

このページでは、PDFlibPas の「ビューアー」トピックに属する TPDFlibViewer コントロールを説明します。API 名、パラメーター、クラス名、ファイル名、リテラルは Delphi ライブラリに表示されるとおりに保持しています

TPDFlibViewer(ユニット Lib\PDFlibViewer.pas)はアプリケーション内で PDF ページを表示する VCL スクロールコントロールです。アタッチされたインスタンスの SelectRenderer に従い、TPDFlib が使用するのと同じエンジン(GDI+、Cairo、または PDFium)でレンダリングします

主要メンバー

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 は呼び出し元が管理するインスタンスの選択文書を表示します(呼び出し元が所有権を保持します)。ズームモードは固定パーセント(zmPercentSetZoomPercent で設定)、幅に合わせる(zmFitWidth、デフォルト)、ページに合わせる(zmFitPage)の 3 種類があり、フィットモードはコントロールのリサイズ時に自動的に再計算されます。ナビゲーションは文書のページ範囲内に制限され、表示ページが実際に変わったときのみ OnPageChange が発生します。SetDisplayMode は単一ページ表示(dmSinglePage、デフォルト)と文書全体を連続して垂直スクロールするモード(dmContinuous)を切り替えます。連続モードではビューポートに表示されているページのみがレンダリングされ、現在のページはスクロール位置に追従します。レンダリングされたページは最近最も使われていないビットマップキャッシュ(デフォルト 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 をインストールしてください