TPDFlibViewer
Visor
Descripción
Esta página describe el control TPDFlibViewer en PDFlibPas dentro del tema "Visor". Los nombres de API, parámetros, clases, archivos y valores literales se conservan tal como aparecen en la biblioteca Delphi.
TPDFlibViewer (unidad Lib\PDFlibViewer.pas) es un control VCL de desplazamiento que muestra páginas PDF dentro de su aplicación. Renderiza a través del mismo motor que usa TPDFlib (GDI+, Cairo o PDFium, según SelectRenderer en la instancia adjunta).
Miembros principales
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;Notas
LoadFromFile abre un documento a través de la propia instancia TPDFlib del control; AttachLibrary muestra el documento seleccionado de una instancia que usted administra (el llamador mantiene la propiedad). Los modos de zoom disponibles son: porcentaje fijo (zmPercent mediante SetZoomPercent), ajuste al ancho (zmFitWidth, el predeterminado) y ajuste a la página (zmFitPage); los modos de ajuste se recalculan automáticamente al cambiar el tamaño del control. La navegación se limita al rango de páginas del documento y dispara OnPageChange solo cuando la página visible realmente cambia. SetDisplayMode alterna entre visualización de una sola página (dmSinglePage, el predeterminado) y desplazamiento vertical continuo por todo el documento (dmContinuous), donde solo se renderizan las páginas visibles en la ventana y la página actual sigue la posición de desplazamiento. Las páginas renderizadas se mantienen en una caché de mapa de bits de uso menos reciente (128 MB de forma predeterminada, ajustable con SetCacheLimit), de modo que volver al desplazamiento anterior no requiere volver a renderizar. La rueda del mouse desplaza verticalmente; PageUp/PageDown, las teclas de flecha, Inicio y Fin permiten la navegación. Las páginas vecinas se pre-renderizan en un hilo en segundo plano para que el cambio de página sea instantáneo. Al hacer clic en una anotación de vínculo se dispara OnLinkClick con el número de página y el resumen de la acción tipificada (TPDFlibActionInfo: dirección web, destino en el documento, acción con nombre y más); LinkActionAtPagePoint expone la prueba de posición directamente, usando coordenadas en el mismo espacio de usuario que reporta GetAnnotRectEx. Arrastrar con el botón izquierdo del mouse selecciona texto (hacer clic en un vínculo dispara el vínculo); Ctrl+C o CopySelectedText copia la selección, y GetTextInRegion realiza la misma búsqueda de región por bloque de forma programática. El control complementario TPDFlibOutlineViewer muestra el árbol de marcadores del documento junto al visor: llame a su método AttachViewer con la instancia del visor y al hacer clic en un marcador se navega a su página de destino. TPDFlibSearchPanel se adjunta de la misma forma: RunSearch lista cada resultado en el documento con su página y el texto coincidente, y hacer clic en un resultado salta a esa página. TPDFlibThumbnailBar completa la familia con una miniatura renderizada de forma diferida de cada página; hacer clic en una miniatura navega a ella. Instale el paquete de tiempo de diseño Package\PDFlibViewerPkg.dpk para colocar el control desde la página de paleta losLab PDF en tiempo de diseño.