TPDFlibViewer

Переглядач

Опис

Ця сторінка описує елемент керування TPDFlibViewer у PDFlibPas у темі «Переглядач». Назви API, параметрів, класів, файлів та літеральні значення збережено відповідно до бібліотеки Delphi

TPDFlibViewer (модуль Lib\PDFlibViewer.pas) — це прокручуваний елемент керування VCL для відображення сторінок PDF у вашому застосунку. Рендеринг виконується через той самий рушій, що використовує TPDFlib (GDI+, Cairo або PDFium відповідно до SelectRenderer на прикріпленому екземплярі).

Ключові члени

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;

Примітки

LoadFromFile відкриває документ через власний екземпляр TPDFlib елемента керування; AttachLibrary відображає вибраний документ екземпляра, яким керує сам викликаючий код (власником залишається викликаючий). Режими масштабування: фіксований відсоток (zmPercent через SetZoomPercent), підгонка за шириною (zmFitWidth, стандартний) та підгонка за сторінкою (zmFitPage); режими підгонки автоматично перераховуються при зміні розміру елемента керування. Навігація обмежується діапазоном сторінок документа та генерує подію OnPageChange лише тоді, коли видима сторінка дійсно змінюється. SetDisplayMode перемикає між режимом відображення однієї сторінки (dmSinglePage, стандартний) та безперервним вертикальним прокручуванням усього документа (dmContinuous), де рендеряться лише сторінки, видимі у вікні перегляду, а поточна сторінка слідує за положенням прокручування. Відрендерені сторінки зберігаються в кеші растрових зображень за принципом витіснення найменш нещодавно використаних (128 МБ за замовчуванням, налаштовується за допомогою SetCacheLimit), тому прокручування назад не потребує повторного рендерингу. Коліщатко миші прокручує по вертикалі; PageUp/PageDown, клавіші зі стрілками, Home та End забезпечують навігацію. Сусідні сторінки попередньо рендеряться у фоновому потоці, тому перегортання відбувається миттєво. Натискання на анотацію-посилання генерує подію OnLinkClick з номером сторінки та типізованим зведенням дії (TPDFlibActionInfo: веб-адреса, пункт призначення в документі, іменована дія тощо); LinkActionAtPagePoint надає безпосередній доступ до тестування потрапляння, приймаючи координати в тому самому просторі користувача, який повертає GetAnnotRectEx. Перетягування лівою кнопкою миші виділяє текст (натискання на посилання активує посилання замість виділення); Ctrl+C або CopySelectedText копіює виділення, а GetTextInRegion виконує той самий пошук за блоком-регіоном програмно. Супровідний елемент керування TPDFlibOutlineViewer відображає дерево закладок документа поруч із переглядачем: викличте його AttachViewer з екземпляром переглядача, і натискання на закладку перейде до сторінки призначення. TPDFlibSearchPanel підключається так само: RunSearch виводить список усіх збігів у документі з номером сторінки та відповідним текстом, а натискання на збіг переходить до цієї сторінки. TPDFlibThumbnailBar доповнює набір мініатюрами кожної сторінки, що рендеряться ліниво; натискання на мініатюру переходить до неї. Встановіть пакет часу розробки Package\PDFlibViewerPkg.dpk, щоб розміщувати елемент керування з палітри losLab PDF під час проектування.