TPDFlibViewer

Prohlížeč

Popis

Tato stránka popisuje ovládací prvek TPDFlibViewer v PDFlibPas v tématu „Prohlížeč". Názvy API, parametrů, tříd, souborů a literální hodnoty zůstávají zachovány tak, jak se objevují v knihovně Delphi.

TPDFlibViewer (jednotka Lib\PDFlibViewer.pas) je VCL posuvný ovládací prvek, který zobrazuje stránky PDF ve vaší aplikaci. Vykresluje prostřednictvím stejného stroje, který používá TPDFlib (GDI+, Cairo nebo PDFium, dle SelectRenderer na připojené instanci).

Klíč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 otevře dokument prostřednictvím vlastní instance TPDFlib ovládacího prvku; AttachLibrary zobrazí vybraný dokument instance, kterou spravujete sami (vlastnictví zůstává volajícímu). Režimy přiblížení jsou pevné procento (zmPercent přes SetZoomPercent), přizpůsobení šířce (zmFitWidth, výchozí) a přizpůsobení stránce (zmFitPage); režimy přizpůsobení se automaticky přepočítávají při změně velikosti ovládacího prvku. Navigace je omezena na rozsah stránek dokumentu a OnPageChange se spouští pouze tehdy, když se skutečně změní viditelná stránka. SetDisplayMode přepíná mezi zobrazením jedné stránky (dmSinglePage, výchozí) a průběžným svislým posouváním celým dokumentem (dmContinuous), kde jsou vykreslovány pouze stránky viditelné ve výřezu a aktuální stránka sleduje polohu posuvníku. Vykreslené stránky jsou uchovávány v bitmapové mezipaměti LRU (128 MB výchozí, nastavitelné pomocí SetCacheLimit), takže posouvání zpět nevyžaduje opětovné vykreslení. Kolečko myši posouvá svisle; PageUp/PageDown, šipky, Home a End navigují. Sousední stránky se předem vykreslují ve vlákně na pozadí, takže přecházení je okamžité. Kliknutí na anotaci odkazu spustí OnLinkClick s číslem stránky a typovým souhrnem akce (TPDFlibActionInfo: webová adresa, cíl v dokumentu, pojmenovaná akce a další); LinkActionAtPagePoint zpřístupňuje test zásahu přímo s souřadnicemi ve stejném uživatelském prostoru, který hlásí GetAnnotRectEx. Tažení levým tlačítkem myši vybírá text (kliknutí na odkaz spustí odkaz); Ctrl+C nebo CopySelectedText zkopíruje výběr a GetTextInRegion provede stejné blokové vyhledávání v oblasti programově. Doprovodný ovládací prvek TPDFlibOutlineViewer zobrazuje strom záložek dokumentu vedle prohlížeče: zavolejte jeho AttachViewer s instancí prohlížeče a kliknutí na záložku přejde na cílovou stránku. TPDFlibSearchPanel se připojuje stejným způsobem: RunSearch vypíše každý výskyt v dokumentu s jeho stránkou a odpovídajícím textem a kliknutí na výskyt přejde na danou stránku. TPDFlibThumbnailBar doplňuje rodinu lazily vykreslenou miniaturou každé stránky; kliknutí na miniaturu na ni přejde. Nainstalujte balíček pro návrhový čas Package\PDFlibViewerPkg.dpk, abyste mohli ovládací prvek umístit z palety losLab PDF v době návrhu.