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 de desplazamiento VCL que muestra páginas PDF dentro de su aplicación. Renderiza mediante el 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;

Observaciones

LoadFromFile abre un documento mediante la instancia propia de TPDFlib del control; AttachLibrary muestra el documento seleccionado de una instancia gestionada por el llamador (el llamador conserva la propiedad). Los modos de zoom son un 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 únicamente cuando la página visible realmente cambia. SetDisplayMode alterna entre la vista de una sola página (dmSinglePage, el predeterminado) y un desplazamiento vertical continuo por todo el documento (dmContinuous), donde solo se renderizan las páginas visibles en el área de visualización y la página actual sigue la posición de desplazamiento. Las páginas renderizadas se guardan en una caché de mapas de bits con eliminación del elemento menos utilizado recientemente (128 MB por defecto, ajustable con SetCacheLimit), de modo que el desplazamiento hacia atrás no vuelve a renderizar. La rueda del ratón desplaza verticamente; RePág/AvPág, las teclas de flecha, Inicio y Fin navegan. Las páginas adyacentes se prerenderizan en un subproceso en segundo plano para que el cambio de página sea instantáneo. Al pulsar una anotación de enlace se dispara OnLinkClick con el número de página y el resumen de acción tipada (TPDFlibActionInfo: dirección web, destino de documento, acción con nombre y más); LinkActionAtPagePoint expone la prueba de impacto directamente, tomando coordenadas en el mismo espacio de usuario que informa GetAnnotRectEx. Arrastrar con el botón izquierdo del ratón selecciona texto (un clic en un enlace dispara el enlace en su lugar); Ctrl+C o CopySelectedText copia la selección, y GetTextInRegion realiza la misma búsqueda de región por bloques mediante programación. El control complementario TPDFlibOutlineViewer muestra el árbol de marcadores del documento junto al visor: llame a su AttachViewer con la instancia del visor y al pulsar un marcador se navega a su página de destino. TPDFlibSearchPanel se adjunta del mismo modo: RunSearch enumera cada coincidencia en el documento con su página y texto coincidente, y al pulsar una coincidencia se salta a esa página. TPDFlibThumbnailBar completa la familia con una miniatura renderizada de forma diferida de cada página; al pulsar una miniatura se navega a ella. Instale el paquete en tiempo de diseño Package\PDFlibViewerPkg.dpk para colocar el control desde la página de paleta PDF de losLab en tiempo de diseño.