TPDFlibViewer
Prehliadač
Opis
Táto stránka popisuje ovládací prvok TPDFlibViewer v PDFlibPas v téme „Prehliadač". Názvy API, parametre, názvy tried, názvy súborov a literály sú zachované presne tak, ako sa zobrazujú v knižnici Delphi.
TPDFlibViewer (jednotka Lib\PDFlibViewer.pas) je scrollovací ovládací prvok VCL, ktorý zobrazuje stránky PDF vo vašej aplikácii. Vykresluje pomocou rovnakého enginu, aký používa TPDFlib (GDI+, Cairo alebo PDFium, podľa SelectRenderer na pripojenej inštancii).
Kľúčové členy
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;Poznámky
LoadFromFile otvorí dokument prostredníctvom vlastnej inštancie TPDFlib ovládacieho prvku; AttachLibrary zobrazí vybraný dokument inštancie, ktorú spravujete sami (volajúci si ponecháva vlastníctvo). Režimy priblíženia sú: pevné percento (zmPercent cez SetZoomPercent), prispôsobenie šírke (zmFitWidth, predvolené) a prispôsobenie stránke (zmFitPage); režimy prispôsobenia sa automaticky prepočítajú pri zmene veľkosti ovládacieho prvku. Navigácia je obmedzená na rozsah stránok dokumentu a udalosť OnPageChange sa vyvoláva iba pri skutočnej zmene viditeľnej stránky. SetDisplayMode prepína medzi zobrazením jednej stránky (dmSinglePage, predvolené) a plynulým vertikálnym posúvaním celého dokumentu (dmContinuous), kde sa vykresľujú iba stránky viditeľné vo výreze a aktuálna stránka sleduje pozíciu posúvania. Vykreslené stránky sú uložené v cache rastrových obrázkov s politikou najmenej nedávno použitých (predvolene 128 MB, nastaviteľné pomocou SetCacheLimit), takže posúvanie späť nevyžaduje opätovné vykresľovanie. Koliesko myši posúva vertikálne; PageUp/PageDown, kurzorové klávesy, Home a End slúžia na navigáciu. Susedné stránky sa vopred vykresľujú na pozadí, takže listovanie je okamžité. Kliknutie na anotáciu odkazu vyvolá udalosť OnLinkClick s číslom stránky a typizovaným súhrnom akcie (TPDFlibActionInfo: webová adresa, cieľ v dokumente, pomenovaná akcia a ďalšie); LinkActionAtPagePoint sprístupňuje test zásahu priamo, pričom prijíma súradnice v rovnakom priestore používateľa, aký hlási GetAnnotRectEx. Ťahanie ľavým tlačidlom myši označuje text (kliknutie na odkaz však vyvolá odkaz); Ctrl+C alebo CopySelectedText skopírujú výber a GetTextInRegion vykoná rovnaké vyhľadávanie oblasti programovo. Sprievodný ovládací prvok TPDFlibOutlineViewer zobrazuje strom záložiek dokumentu vedľa prehliadača: zavolajte jeho AttachViewer s inštanciou prehliadača a kliknutie na záložku naviguje na cieľovú stránku. TPDFlibSearchPanel sa pripája rovnako: RunSearch vypíše každý výskyt v dokumente s jeho stránkou a zodpovedajúcim textom a kliknutie na výskyt preskočí na danú stránku. TPDFlibThumbnailBar dopĺňa rodinu o miniatúry každej stránky s lenivým vykreslením; kliknutie na miniatúru naviguje na ňu. Nainštalujte balík pre dobu návrhu Package\PDFlibViewerPkg.dpk, aby ste mohli ovládací prvok umiestniť z palety losLab PDF pri návrhu.