TPDFlibViewer
Viewer
Beschreibung
Diese Seite beschreibt das TPDFlibViewer-Steuerelement in PDFlibPas im Themenbereich „Viewer". API-Namen, Parameter, Klassennamen, Dateinamen und literale Werte bleiben unverändert, damit sie zur Delphi-Bibliothek passen.
TPDFlibViewer (Unit Lib\PDFlibViewer.pas) ist ein VCL-Scroll-Steuerelement, das PDF-Seiten innerhalb Ihrer Anwendung anzeigt. Es rendert über dieselbe Engine, die TPDFlib verwendet (GDI+, Cairo oder PDFium, gemäß SelectRenderer der zugehörigen Instanz).
Wichtige Member
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;Hinweise
LoadFromFile öffnet ein Dokument über die eigene TPDFlib-Instanz des Steuerelements; AttachLibrary zeigt das ausgewählte Dokument einer von Ihnen verwalteten Instanz an (der Aufrufer behält den Besitz). Zoom-Modi sind ein fester Prozentsatz (zmPercent über SetZoomPercent), Breitenanpassung (zmFitWidth, Standard) und Seitenanpassung (zmFitPage); Anpassungsmodi werden automatisch neu berechnet, wenn das Steuerelement in der Größe geändert wird. Die Navigation begrenzt sich auf den Seitenbereich des Dokuments und löst OnPageChange nur aus, wenn sich die sichtbare Seite tatsächlich ändert. SetDisplayMode wechselt zwischen der Einzelseitenanzeige (dmSinglePage, Standard) und einem kontinuierlichen vertikalen Scroll durch das gesamte Dokument (dmContinuous), bei dem nur die im Anzeigebereich sichtbaren Seiten gerendert werden und die aktuelle Seite der Scrollposition folgt. Gerenderte Seiten werden in einem LRU-Bitmap-Cache (standardmäßig 128 MB, einstellbar mit SetCacheLimit) gehalten, sodass beim Zurückblättern keine erneute Darstellung erforderlich ist. Das Mausrad scrollt vertikal; Bild-auf/Bild-ab, Pfeiltasten, Pos1 und Ende navigieren. Benachbarte Seiten werden in einem Hintergrundthread vorgerendert, sodass das Umblättern sofort erfolgt. Ein Klick auf eine Link-Anmerkung löst OnLinkClick mit der Seitenzahl und der typisierten Aktionszusammenfassung aus (TPDFlibActionInfo: Webadresse, Dokumentziel, benannte Aktion und mehr); LinkActionAtPagePoint macht den Treffertest direkt zugänglich und nimmt Koordinaten in demselben Benutzerraum an, den GetAnnotRectEx meldet. Das Ziehen mit der linken Maustaste wählt Text aus (ein Klick auf einen Link löst stattdessen den Link aus); Strg+C oder CopySelectedText kopiert die Auswahl, und GetTextInRegion führt dieselbe blockbasierte Bereichssuche programmgesteuert durch. Das Begleitelement TPDFlibOutlineViewer zeigt den Lesezeichenbaum des Dokuments neben dem Viewer: Rufen Sie dessen AttachViewer mit der Viewer-Instanz auf, und ein Klick auf ein Lesezeichen navigiert zur Zielseite. TPDFlibSearchPanel wird auf dieselbe Weise angehängt: RunSearch listet alle Treffer im Dokument mit Seite und übereinstimmendem Text auf, und ein Klick auf einen Treffer springt zu dieser Seite. TPDFlibThumbnailBar vervollständigt die Familie mit einer verzögert gerenderten Miniaturansicht jeder Seite; ein Klick auf eine Miniaturansicht navigiert dorthin. Installieren Sie das Design-Time-Paket Package\PDFlibViewerPkg.dpk, um das Steuerelement von der losLab-PDF-Palettenregisterkarte zur Entwurfszeit zu platzieren.