TPDFlibViewer
Viewer
Opis
Ova stranica opisuje kontrolu TPDFlibViewer u PDFlibPas pod temom "Viewer". Nazivi API-ja, parametri, nazivi klasa, nazivi datoteka i literali zadržani su točno onakvima kakvi se pojavljuju u Delphi biblioteci.
TPDFlibViewer (jedinica Lib\PDFlibViewer.pas) je VCL kontrola za pomicanje koja prikazuje PDF stranice unutar vaše aplikacije. Renderira kroz isti mehanizam koji upotrebljava TPDFlib (GDI+, Cairo ili PDFium, slijedeć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 putem vlastite instance TPDFlib kontrole; AttachLibrary prikazuje odabrani dokument instance kojom sami upravljate (pozivatelj zadržava vlasništvo). Načini zumiranja su fiksni postotak (zmPercent putem SetZoomPercent), prilagodba širini (zmFitWidth, zadano) i prilagodba stranici (zmFitPage); načini prilagodbe automatski se preračunavaju kada se kontroli promijeni veličina. Navigacija se ograničava na raspon stranica dokumenta i pokreće OnPageChange samo kada se vidljiva stranica doista promijeni. SetDisplayMode prebacuje između prikaza jedne stranice (dmSinglePage, zadano) i kontinuiranog okomitog pomicanja kroz cijeli dokument (dmContinuous), gdje se renderiraju samo stranice vidljive u prikazu prozora, a trenutna stranica prati poziciju pomicanja. Renderirane stranice drže se u cache memoriji bitmapa koja najmanje nedavno korištene izbacuje (zadano 128 MB, podesivo sa SetCacheLimit), pa pomicanje unatrag ne zahtijeva ponovno renderiranje. Kotačić miša pomiče okomito; PageUp/PageDown, tipke sa strelicama, Home i End služe za navigaciju. Susjedne stranice unaprijed se renderiraju u pozadinskoj niti pa je promjena stranica trenutna. Klik na pribilješku poveznice pokreće OnLinkClick s brojem stranice i upisanim sažetkom radnje (TPDFlibActionInfo: web-adresa, odredište dokumenta, imenovana radnja i više); LinkActionAtPagePoint izlaže testiranje pogotka izravno, uzimajući koordinate u istom korisničkom prostoru koji prijavljuje GetAnnotRectEx. Povlačenjem lijevom tipkom miša odabire se tekst (klik na poveznicu umjesto toga pokreće poveznicu); Ctrl+C ili CopySelectedText kopira odabir, a GetTextInRegion izvršava isto traženje regije temeljeno na blokovima programski. Popratna kontrola TPDFlibOutlineViewer prikazuje stablo oznaka dokumenta pored preglednika: pozovite njezin AttachViewer s instancom preglednika i klik na oznaku preusmjerava na njenu odredišnu stranicu. TPDFlibSearchPanel se prilaže na isti način: RunSearch navodi svaki pogodak u dokumentu sa svojom stranicom i podudarajućim tekstom, a klik na pogodak skače na tu stranicu. TPDFlibThumbnailBar upotpunjuje obitelj s minijaturom svake stranice koja se odgođeno renderira; klik na minijaturu preusmjerava na nju. Instalirajte paket za vrijeme dizajniranja Package\PDFlibViewerPkg.dpk da biste postavili kontrolu s palete losLab PDF tijekom dizajniranja.