TPDFlibViewer

Pregledač

Opis

Ova stranica opisuje TPDFlibViewer kontrolu u PDFlibPas pod temom "Pregledač". Imena API-ja, parametri, imena klasa, imena datoteka i literali su zadržani tačno onako kako se pojavljuju u Delphi biblioteci

TPDFlibViewer (jedinica Lib\PDFlibViewer.pas) je VCL kontrola sa klizačem koja prikazuje PDF stranice unutar vaše aplikacije. Ona renderuje kroz isti mehanizam koji koristi TPDFlib (GDI+, Cairo ili PDFium, prateći SelectRenderer na priloženoj instanci).

Ključni članovi

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;

Napomene

LoadFromFile otvara dokument kroz sopstvenu TPDFlib instancu kontrole; AttachLibrary prikazuje izabrani dokument instance kojom sami upravljate (pozivaoc zadržava vlasništvo). Režimi zumiranja su fiksni procenat (zmPercent preko SetZoomPercent), uklapanje u širinu (zmFitWidth, podrazumevano) i uklapanje u stranicu (zmFitPage); režimi uklapanja se automatski preračunavaju kada se kontroli promeni veličina. Navigacija se ograničava na opseg stranica dokumenta i pokreće OnPageChange samo kada se vidljiva stranica zaista promeni. SetDisplayMode prebacuje između prikaza jedne stranice (dmSinglePage, podrazumevano) i kontinuiranog vertikalnog pomeranja kroz ceo dokument (dmContinuous), gde se renderuju samo stranice vidljive u prikazu, a trenutna stranica prati poziciju klizača. Renderovane stranice se čuvaju u najmanje nedavno korišćenoj bitmap keš memoriji (128 MB podrazumevano, podesivo sa SetCacheLimit), tako da povratak unazad ne zahteva ponovno renderovanje. Točkić miša pomera vertikalno; PageUp/PageDown, tasteri sa strelicama, Home i End vrše navigaciju. Susedne stranice se unapred renderuju u pozadinskoj niti, tako da je promena stranice trenutna. Klik na link anotaciju pokreće OnLinkClick sa brojem stranice i otkucanim sažetkom akcije (TPDFlibActionInfo: web adresa, destinacija dokumenta, imenovana akcija i drugo); LinkActionAtPagePoint direktno izlaže testiranje pogotka (hit test), uzimajući koordinate u istom korisničkom prostoru koji prijavljuje GetAnnotRectEx. Prevlačenje levim tasterom miša bira tekst (klik na link pokreće link umesto toga); Ctrl+C ili CopySelectedText kopira selekciju, a GetTextInRegion programski obavlja isto pretraživanje regiona zasnovano na bloku. Prateća kontrola TPDFlibOutlineViewer prikazuje stablo obeleživača (bookmark) dokumenta pored pregledača: pozovite njeno AttachViewer sa instancom pregledača i klik na obeleživač navigira do njegove odredišne stranice. TPDFlibSearchPanel se prilaže na isti način: RunSearch navodi svaki pogodak u dokumentu sa njegovom stranicom i podudarajućim tekstom, a klik na pogodak skače na tu stranicu. TPDFlibThumbnailBar upotpunjuje porodicu lenjo renderovanom minijaturom svake stranice; klik na minijaturu navigira do nje. Instalirajte dizajn-tajm paket Package\PDFlibViewerPkg.dpk da biste postavili kontrolu sa losLab PDF palete u vreme dizajniranja.