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 при проектиране.