TPDFlibViewer

Visualizzatore

Descrizione

Questa pagina descrive il controllo TPDFlibViewer in PDFlibPas nell'area "Visualizzatore". I nomi di API, parametri, classi, file e valori letterali restano invariati per corrispondere alla libreria Delphi.

TPDFlibViewer (unità Lib\PDFlibViewer.pas) è un controllo VCL con scorrimento che visualizza le pagine PDF all'interno dell'applicazione. Esegue il rendering attraverso lo stesso motore usato da TPDFlib (GDI+, Cairo o PDFium, seguendo SelectRenderer sull'istanza collegata).

Membri principali

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;

Note

LoadFromFile apre un documento tramite l'istanza TPDFlib propria del controllo; AttachLibrary visualizza il documento selezionato di un'istanza gestita dall'utente (il chiamante mantiene la proprietà). Le modalità di zoom sono una percentuale fissa (zmPercent tramite SetZoomPercent), adatta alla larghezza (zmFitWidth, predefinita) e adatta alla pagina (zmFitPage); le modalità di adattamento vengono ricalcolate automaticamente quando il controllo viene ridimensionato. La navigazione è limitata all'intervallo di pagine del documento e genera OnPageChange solo quando la pagina visibile cambia effettivamente. SetDisplayMode alterna tra la visualizzazione a pagina singola (dmSinglePage, predefinita) e uno scorrimento verticale continuo attraverso l'intero documento (dmContinuous), dove vengono renderizzate solo le pagine visibili nel riquadro di visualizzazione e la pagina corrente segue la posizione di scorrimento. Le pagine renderizzate vengono mantenute in una cache bitmap least-recently-used (128 MB per impostazione predefinita, regolabile con SetCacheLimit), quindi lo scorrimento all'indietro non richiede un nuovo rendering. La rotellina del mouse scorre verticalmente; PageUp/PageDown, i tasti freccia, Home e Fine effettuano la navigazione. Le pagine adiacenti vengono pre-renderizzate su un thread in background in modo che il cambio pagina sia istantaneo. Facendo clic su un'annotazione di link si genera OnLinkClick con il numero di pagina e il riepilogo dell'azione tipizzata (TPDFlibActionInfo: indirizzo web, destinazione del documento, azione con nome e altro); LinkActionAtPagePoint espone direttamente il test di hit, accettando coordinate nello stesso spazio utente riportato da GetAnnotRectEx. Trascinando con il pulsante sinistro del mouse si seleziona il testo (un clic su un link attiva il link); Ctrl+C o CopySelectedText copiano la selezione, e GetTextInRegion esegue la stessa ricerca per regione a blocchi in modo programmatico. Il controllo companion TPDFlibOutlineViewer mostra l'albero dei segnalibri del documento accanto al visualizzatore: chiamare il suo AttachViewer con l'istanza del visualizzatore e fare clic su un segnalibro porta alla pagina di destinazione. TPDFlibSearchPanel si collega allo stesso modo: RunSearch elenca ogni corrispondenza nel documento con la sua pagina e il testo corrispondente, e fare clic su una corrispondenza porta a quella pagina. TPDFlibThumbnailBar completa la famiglia con una miniatura renderizzata in modo lazy di ogni pagina; fare clic su una miniatura porta a quella pagina. Installare il pacchetto design-time Package\PDFlibViewerPkg.dpk per posizionare il controllo dalla pagina della palette losLab PDF in fase di progettazione.