TPDFlibViewer

Viewer

Beschrijving

Deze pagina beschrijft het TPDFlibViewer-besturingselement in PDFlibPas onder het onderwerp “Viewer”. API-namen, parameters, klassenamen, bestandsnamen en letterlijke waarden zijn exact weergegeven zoals ze voorkomen in de Delphi-bibliotheek

TPDFlibViewer (unit Lib\PDFlibViewer.pas) is een VCL-schuifbesturingselement dat PDF-pagina's weergeeft in uw toepassing. Het rendert via dezelfde engine die TPDFlib gebruikt (GDI+, Cairo of PDFium, conform SelectRenderer op de gekoppelde instantie)

Belangrijkste leden

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;

Opmerkingen

LoadFromFile opent een document via de eigen TPDFlib-instantie van het besturingselement; AttachLibrary geeft het geselecteerde document weer van een instantie die u zelf beheert (de aanroeper behoudt eigenaarschap). Zoommodi zijn een vaste percentage (zmPercent via SetZoomPercent), aanpassen-aan-breedte (zmFitWidth, de standaard) en aanpassen-aan-pagina (zmFitPage); aanpassingsmodi worden automatisch herberekend wanneer het besturingselement van formaat verandert. Navigatie klemmt aan het paginabereik van het document en activeert OnPageChange alleen wanneer de zichtbare pagina echt verandert. SetDisplayMode schakelt tussen weergave van één pagina (dmSinglePage, de standaard) en een doorlopend verticaal scrollen door het hele document (dmContinuous), waarbij alleen de pagina's die zichtbaar zijn in de viewport worden gerenderd en de huidige pagina de scrollpositie volgt. Gerenderde pagina's worden bewaard in een minst-recent-gebruikte bitmapbuffer (standaard 128 MB, aanpasbaar met SetCacheLimit), zodat terugschuiven niet opnieuw rendert. Het muiswiel scrolt verticaal; PageUp/PageDown, de pijltoetsen, Home en End navigeren. Aangrenzende pagina's worden vooraf gerenderd op een achtergrondthread zodat het omslaan direct is. Klikken op een koppelingannotatie activeert OnLinkClick met het paginanummer en de getypte actiesamenvatting (TPDFlibActionInfo: webadres, documentbestemming, benoemde actie en meer); LinkActionAtPagePoint stelt de hitdetectie rechtstreeks beschikbaar, met coördinaten in dezelfde gebruikersruimte die GetAnnotRectEx rapporteert. Slepen met de linkermuisknop selecteert tekst (een klik op een koppeling activeert in plaats daarvan de koppeling); Ctrl+C of CopySelectedText kopieert de selectie, en GetTextInRegion voert dezelfde blokgebaseerde regiozoekopdracht programmatisch uit. Het bijbehorende besturingselement TPDFlibOutlineViewer toont de inhoudsopgaveboom van het document naast de viewer: roep AttachViewer aan met de viewerinstantie en klikken op een bladwijzer navigeert naar de bijbehorende bestemmingspagina. TPDFlibSearchPanel wordt op dezelfde manier gekoppeld: RunSearch vermeldt elke treffer in het document met bijbehorende pagina en overeenkomende tekst, en klikken op een treffer springt naar die pagina. TPDFlibThumbnailBar completeert de familie met een lui gerenderde miniatuur van elke pagina; klikken op een miniatuur navigeert ernaar. Installeer het ontwerptijdpakket Package\PDFlibViewerPkg.dpk om het besturingselement vanuit het losLab PDF-palet te plaatsen tijdens het ontwerpen