TPDFlibViewer
Vizualizator
Descriere
Această pagină descrie controlul TPDFlibViewer în PDFlibPas în cadrul subiectului „Vizualizator". Numele API, parametrii, numele claselor, numele de fișiere și literalele sunt păstrate exact așa cum apar în biblioteca Delphi.
TPDFlibViewer (unitate Lib\PDFlibViewer.pas) este un control VCL cu derulare care afișează pagini PDF în interiorul aplicației dvs. Redă prin același motor pe care îl folosește TPDFlib (GDI+, Cairo sau PDFium, urmând SelectRenderer pe instanța atașată).
Membri principali
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;Note
LoadFromFile deschide un document prin propria instanță TPDFlib a controlului; AttachLibrary afișează documentul selectat al unei instanțe pe care o gestionați dvs. înșivă (apelantul păstrează proprietatea). Modurile de zoom sunt un procentaj fix (zmPercent via SetZoomPercent), ajustare la lățime (zmFitWidth, implicit) și ajustare la pagină (zmFitPage); modurile de ajustare se recalculează automat când controlul este redimensionat. Navigarea se limitează la intervalul de pagini al documentului și declanșează OnPageChange numai când pagina vizibilă se schimbă efectiv. SetDisplayMode comută între afișarea paginii unice (dmSinglePage, implicit) și o derulare verticală continuă prin întregul document (dmContinuous), unde numai paginile vizibile în viewport sunt redate, iar pagina curentă urmează poziția de derulare. Paginile redate sunt păstrate într-un cache de bitmap cu evacuare cel mai recent utilizat (128 MB implicit, ajustabil cu SetCacheLimit), astfel încât derularea înapoi nu re-redează. Rotița mouse-ului derulează vertical; PageUp/PageDown, tastele săgeată, Home și End navighează. Paginile vecine se pre-redează pe un fir de fundal astfel încât paginarea este instantanee. Clic pe o adnotare de legătură declanșează OnLinkClick cu numărul paginii și rezumatul acțiunii tipizate (TPDFlibActionInfo: adresă web, destinație de document, acțiune numită și altele); LinkActionAtPagePoint expune testul de lovire direct, luând coordonatele în același spațiu utilizator pe care îl raportează GetAnnotRectEx. Tragerea cu butonul stâng al mouse-ului selectează text (un clic pe o legătură declanșează legătura în schimb); Ctrl+C sau CopySelectedText copiază selecția, iar GetTextInRegion efectuează aceeași căutare bazată pe regiune în mod programatic. Controlul companion TPDFlibOutlineViewer afișează arborele de marcaje al documentului lângă vizualizator: apelați AttachViewer cu instanța vizualizatorului și clic pe un marcaj navighează la pagina de destinație. TPDFlibSearchPanel se atașează în același mod: RunSearch listează fiecare rezultat din document cu pagina și textul corespunzător, iar clic pe un rezultat sare la acea pagină. TPDFlibThumbnailBar completează familia cu o miniatură redată leneș a fiecărei pagini; clic pe o miniatură navighează la ea. Instalați pachetul de design Package\PDFlibViewerPkg.dpk pentru a plasa controlul din pagina paletei PDF losLab la momentul proiectării.