TPDFlibViewer

Przeglądarka

Opis

Ta strona opisuje kontrolkę TPDFlibViewer w PDFlibPas w obszarze tematycznym „Przeglądarka”. Nazwy API, parametry, nazwy klas, pliki i wartości literalne pozostają niezmienione, tak jak widnieją w bibliotece Delphi.

TPDFlibViewer (jednostka Lib\PDFlibViewer.pas) to przewijalna kontrolka VCL wyświetlająca strony PDF wewnątrz aplikacji. Renderuje przez ten sam silnik co TPDFlib (GDI+, Cairo lub PDFium, zgodnie z SelectRenderer na dołączonej instancji).

Główne składowe

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;

Uwagi

LoadFromFile otwiera dokument przez własną instancję TPDFlib kontrolki; AttachLibrary wyświetla wybrany dokument instancji zarządzanej przez wywołującego (wywołujący zachowuje własność). Tryby powiększenia to: stały procent (zmPercent przez SetZoomPercent), dopasowanie do szerokości (zmFitWidth, domyślne) i dopasowanie do strony (zmFitPage); tryby dopasowania przeliczają się automatycznie przy zmianie rozmiaru kontrolki. Nawigacja jest ograniczona do zakresu stron dokumentu i wywołuje OnPageChange tylko wtedy, gdy widoczna strona rzeczywiście się zmienia. SetDisplayMode przełącza między wyświetlaniem jednostronicowym (dmSinglePage, domyślne) a ciągłym pionowym przewijaniem całego dokumentu (dmContinuous), gdzie renderowane są tylko strony widoczne w oknie roboczym, a bieżąca strona podąża za pozycją przewijania. Wyrenderowane strony są przechowywane w pamięci podręcznej bitmapowej LRU (domyślnie 128 MB, regulowane przez SetCacheLimit), dzięki czemu przewijanie wstecz nie wymaga ponownego renderowania. Kółko myszy przewija pionowo; PageUp/PageDown, klawisze strzałek, Home i End służą do nawigacji. Sąsiednie strony są wstępnie renderowane w wątku w tle, dzięki czemu stronicowanie jest natychmiastowe. Kliknięcie adnotacji łącza wywołuje OnLinkClick z numerem strony i podsumowaniem typowanej akcji (TPDFlibActionInfo: adres WWW, cel dokumentu, nazwana akcja i inne); LinkActionAtPagePoint udostępnia test trafienia bezpośrednio, przyjmując współrzędne w tej samej przestrzeni użytkownika, którą raportuje GetAnnotRectEx. Przeciąganie lewym przyciskiem myszy zaznacza tekst (kliknięcie łącza wywołuje łącze); Ctrl+C lub CopySelectedText kopiuje zaznaczenie, a GetTextInRegion wykonuje to samo blokowe wyszukiwanie obszaru programowo. Kontrolka towarzysząca TPDFlibOutlineViewer wyświetla drzewo zakładek dokumentu obok przeglądarki: wywołaj jej AttachViewer z instancją przeglądarki, a kliknięcie zakładki przenosi do jej strony docelowej. TPDFlibSearchPanel łączy się w ten sam sposób: RunSearch wyświetla listę wszystkich trafień w dokumencie wraz z ich stroną i pasującym tekstem, a kliknięcie trafienia przeskakuje do tej strony. TPDFlibThumbnailBar uzupełnia rodzinę o leniwie renderowane miniatury każdej strony; kliknięcie miniatury nawiguje do niej. Zainstaluj pakiet czasu projektowania Package\PDFlibViewerPkg.dpk, aby umieścić kontrolkę z palety losLab PDF podczas projektowania.