TPDFlibViewer

Visionneuse

Description

Cette page décrit le contrôle TPDFlibViewer dans PDFlibPas sous le thème « Visionneuse ». Les noms d'API, paramètres, noms de classes, noms de fichiers et littéraux sont conservés exactement tels qu'ils apparaissent dans la bibliothèque Delphi.

TPDFlibViewer (unité Lib\PDFlibViewer.pas) est un contrôle VCL à défilement qui affiche des pages PDF dans votre application. Il effectue le rendu via le même moteur qu'utilise TPDFlib (GDI+, Cairo ou PDFium, selon SelectRenderer sur l'instance associée).

Membres principaux

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;

Remarques

LoadFromFile ouvre un document via l'instance TPDFlib propre au contrôle ; AttachLibrary affiche le document sélectionné d'une instance que vous gérez vous-même (l'appelant conserve la propriété). Les modes de zoom sont : un pourcentage fixe (zmPercent via SetZoomPercent), ajustement à la largeur (zmFitWidth, valeur par défaut) et ajustement à la page (zmFitPage) ; les modes d'ajustement se recalculent automatiquement lors du redimensionnement du contrôle. La navigation est limitée à la plage de pages du document et déclenche OnPageChange uniquement lorsque la page visible change réellement. SetDisplayMode bascule entre l'affichage d'une seule page (dmSinglePage, valeur par défaut) et un défilement vertical continu sur l'ensemble du document (dmContinuous), où seules les pages visibles dans la fenêtre d'affichage sont rendues et la page courante suit la position de défilement. Les pages rendues sont conservées dans un cache de bitmaps à usage le moins récent (128 Mo par défaut, ajustable avec SetCacheLimit), de sorte que le défilement arrière n'entraîne pas de nouveau rendu. La molette de la souris fait défiler verticalement ; PagePrec/PageSuiv, les touches fléchées, Début et Fin permettent la navigation. Les pages voisines sont pré-rendues sur un fil d'arrière-plan pour que la pagination soit instantanée. Un clic sur une annotation de lien déclenche OnLinkClick avec le numéro de page et le résumé d'action typé (TPDFlibActionInfo : adresse web, destination dans le document, action nommée et plus) ; LinkActionAtPagePoint expose directement le test de collision, prenant des coordonnées dans le même espace utilisateur que celui utilisé par GetAnnotRectEx. Faire glisser avec le bouton gauche de la souris sélectionne du texte (un clic sur un lien déclenche le lien à la place) ; Ctrl+C ou CopySelectedText copie la sélection, et GetTextInRegion effectue la même recherche par région de manière programmatique. Le contrôle compagnon TPDFlibOutlineViewer affiche l'arborescence des signets du document à côté de la visionneuse : appelez son AttachViewer avec l'instance de la visionneuse et un clic sur un signet navigue vers sa page de destination. TPDFlibSearchPanel s'associe de la même façon : RunSearch liste chaque occurrence dans le document avec sa page et le texte correspondant, et un clic sur une occurrence accède à cette page. TPDFlibThumbnailBar complète la famille avec une miniature rendue de façon différée de chaque page ; un clic sur une miniature y navigue. Installez le paquet de conception Package\PDFlibViewerPkg.dpk pour placer le contrôle depuis la palette losLab PDF à la conception.