TPDFlibViewer
Katseluohjelma
Kuvaus
Tämä sivu dokumentoi ohjausobjektin TPDFlibViewer PDFlibPas-kirjastossa aiheen Katseluohjelma alla. API-nimet, parametrit, luokkien nimet, tiedostonimet ja literaaliarvot säilytetään tarkalleen sellaisina kuin ne esiintyvät Delphi-kirjastossa.
TPDFlibViewer (yksikkö Lib\PDFlibViewer.pas) on VCL-vieritysohjausobjekti, joka näyttää PDF-sivuja sovelluksesi sisällä. Se renderöi saman moottorin kautta, jota TPDFlib käyttää (GDI+, Cairo tai PDFium, noudattaen liitetyn instanssin SelectRenderer-valintaa).
Tärkeimmät jäsenet
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;Huomautuksia
LoadFromFile avaa dokumentin ohjausobjektin oman TPDFlib-instanssin kautta; AttachLibrary näyttää itse hallinnoimasi instanssin valitun dokumentin (soittaja säilyttää omistajuuden). Zoomaustilat ovat kiinteä prosenttiosuus (zmPercent kohteen SetZoomPercent kautta), sovita leveyteen (zmFitWidth, oletus) ja sovita sivulle (zmFitPage); sovitustilat lasketaan automaattisesti uudelleen, kun ohjausobjektin koko muuttuu. Navigointi kiinnittyy dokumentin sivualueeseen ja laukaisee OnPageChange-tapahtuman vain, kun näkyvä sivu todella muuttuu. SetDisplayMode vaihtaa yhden sivun näytön (dmSinglePage, oletus) ja jatkuvan pystysuuntaisen vierityksen koko dokumentin läpi (dmContinuous) välillä, missä vain katseluportissa näkyvät sivut renderöidään ja nykyinen sivu seuraa vierityssijaintia. Renderöidyt sivut pidetään vähiten äskettäin käytetyssä bittikarttavälimuistissa (128 Mt oletuksena, säädettävissä toiminnolla SetCacheLimit), joten taaksepäin vieritys ei vaadi uudelleenrenderöintiä. Hiiren rulla vierittää pystysuunnassa; PageUp/PageDown, nuolinäppäimet, Home ja End navigoivat. Vierekkäiset sivut esirenderöidään taustasäikeessä, joten sivutus on välitön. Linkkihuomautuksen napsauttaminen laukaisee OnLinkClick-tapahtuman sivunumerolla ja tyypitetyllä toiminnon yhteenvedolla (TPDFlibActionInfo: verkko-osoite, dokumentin kohde, nimetty toiminto ja paljon muuta); LinkActionAtPagePoint palauttaa osumatestin suoraan, ottaen koordinaatit samassa käyttäjäavaruudessa kuin GetAnnotRectEx raportoi. Vetäminen hiiren vasemmalla painikkeella valitsee tekstiä (linkin napsauttaminen laukaisee sen sijaan linkin); Ctrl+C tai CopySelectedText kopioi valinnan, ja GetTextInRegion suorittaa saman lohkopohjaisen aluehaun ohjelmallisesti. Liitännäisohjausobjekti TPDFlibOutlineViewer näyttää dokumentin kirjanmerkkipuun katseluohjelman vieressä: kutsu sen funktiota AttachViewer katseluohjelman instanssilla ja kirjanmerkin napsauttaminen navigoi sen kohdesivulle. TPDFlibSearchPanel liitetään samalla tavalla: RunSearch listaa jokaisen osuman dokumentissa sen sivun ja vastaavan tekstin kanssa, ja osuman napsauttaminen hyppää kyseiselle sivulle. TPDFlibThumbnailBar täydentää perheen laiskasti renderöidyllä miniatyyrillä jokaisesta sivusta; pikkukuvan napsauttaminen navigoi sille. Asenna suunnitteluaikainen paketti Package\PDFlibViewerPkg.dpk asettaaksesi ohjausobjektin losLab PDF -palettisivulta suunnitteluaikana.