TPDFlibViewer
Visningsprogram
Beskrivning
Denna sida beskriver kontrollen TPDFlibViewer i PDFlibPas under ämnet "Visningsprogram". API-namn, parametrar, klassnamn, filnamn och literalvärden behålls exakt som de visas i Delphi-biblioteket.
TPDFlibViewer (enhet Lib\PDFlibViewer.pas) är en VCL-rullningskontroll som visar PDF-sidor inuti din applikation. Den renderar via samma motor som TPDFlib använder (GDI+, Cairo eller PDFium, enligt SelectRenderer på den anslutna instansen).
Viktiga medlemmar
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;Anmärkningar
LoadFromFile öppnar ett dokument via kontrollens egna TPDFlib-instans; AttachLibrary visar det valda dokumentet för en instans som du hanterar själv (anroparen behåller ägarskapet). Zoomlägen är en fast procentandel (zmPercent via SetZoomPercent), anpassa till bredd (zmFitWidth, standardvärde) och anpassa till sida (zmFitPage); anpassningslägen beräknas automatiskt om när kontrollen ändrar storlek. Navigering begränsas till dokumentets sidintervall och aktiverar OnPageChange endast när den synliga sidan verkligen ändras. SetDisplayMode växlar mellan visning av enskild sida (dmSinglePage, standardvärde) och ett kontinuerligt vertikalt rullflöde genom hela dokumentet (dmContinuous), där bara de sidor som syns i vyn renderas och aktuell sida följer rullpositionen. Renderade sidor hålls i ett minst-nyligen-använt bitmap-cache (128 MB som standard, justerbart med SetCacheLimit), så att rulla tillbaka inte behöver omrendering. Mushjulet rullar vertikalt; PageUp/PageDown, piltangenterna, Home och End navigerar. Angränsande sidor förrenderas i en bakgrundstråd så att sidbläddrandet är omedelbart. Att klicka på en länknotering aktiverar OnLinkClick med sidnumret och den typade åtgärdssammanfattningen (TPDFlibActionInfo: webbadress, dokumentmål, namngiven åtgärd med mera); LinkActionAtPagePoint exponerar träfftestet direkt och tar koordinater i samma användarutrymme som GetAnnotRectEx rapporterar. Att dra med vänster musknapp väljer text (ett klick på en länk aktiverar länken istället); Ctrl+C eller CopySelectedText kopierar urvalet, och GetTextInRegion utför samma blockbaserade regionuppslaget programmatiskt. Följekontrollfunktionen TPDFlibOutlineViewer visar dokumentets bokmärkesträd bredvid visningsprogrammet: anropa dess AttachViewer med visningsprograminstansen och att klicka på ett bokmärke navigerar till dess målsida. TPDFlibSearchPanel kopplas på samma sätt: RunSearch listar varje träff i dokumentet med dess sida och matchande text, och att klicka på en träff hoppar till den sidan. TPDFlibThumbnailBar kompletterar familjen med ett lättrendat miniatyrbibliotek av varje sida; att klicka på en miniatyrbild navigerar till den. Installera designtidspaketet Package\PDFlibViewerPkg.dpk för att placera kontrollen från losLab PDF-paletten vid designtid.