Referencia completa de ViewerPreferences

ViewerPreferences permite controlar cómo se presentan los documentos PDF en visores compatibles y cómo se inicializan algunos ajustes de impresión predeterminados. La biblioteca HotPDF actual admite 14 valores de ViewerPreferences además de la propiedad relacionada InitialZoom

Tipos de datos actuales

THPDFDirection = (LeftToRight, RightToLeft);
THPDFNonFullScreenPageMode = (
  nfpmUseNone, nfpmUseOutlines, nfpmUseThumbs, nfpmUseOC, nfpmUseAttachments
);
THPDFPrintScaling = (psNone, psAppDefault);
THPDFDuplex = (dupSimplex, dupDuplexFlipShortEdge, dupDuplexFlipLongEdge);
THPDFPageBoundary = (pbMediaBox, pbCropBox, pbBleedBox, pbTrimBox, pbArtBox);
THPDFInitialZoom = (
  FitNone, FitPage, FitWidth, FitHeight, FitBox, FitBoxWidth, FitBoxHeight,
  Zoom50, Zoom75, Zoom100, Zoom125, Zoom150, Zoom200
);

THPDFViewerPreference = (
  vpHideToolbar, vpHideMenubar, vpHideWindowUI, vpFitWindow, vpCenterWindow,
  vpDisplayDocTitle, vpDirection, vpNonFullScreenPageMode, vpPrintScaling,
  vpDuplex, vpPickTrayByPDFSize, vpNumCopies, vpPrintArea, vpPrintClip,
  vpViewArea, vpViewClip
);

THPDFViewerPreferences = set of THPDFViewerPreference;

Supported ViewerPreferences

Opción Propiedad complementaria Descripción
vpHideToolbar None Oculta la barra de herramientas del visor
vpHideMenubar None Oculta la barra de menús del visor
vpHideWindowUI None Oculta elementos de la interfaz como barras de desplazamiento y controles de navegación
vpFitWindow None Redimensiona la ventana del documento para ajustar la primera página mostrada
vpCenterWindow None Centra la ventana del documento en la pantalla
vpDisplayDocTitle Title Muestra el título del documento en lugar del nombre del archivo en el título del visor
vpDirection Direction Guarda el orden de lectura predominante usando LeftToRight o RightToLeft
vpNonFullScreenPageMode NonFullScreenPageMode Elige el modo de página que se usa al salir del modo de pantalla completa
vpPrintScaling PrintScaling Elige psNone o psAppDefault para la escala de impresión predeterminada
vpDuplex Duplex Elige comportamiento de impresión simplex o dúplex
vpPickTrayByPDFSize None Solicita la selección de bandeja de impresora según el tamaño de página del PDF
vpNumCopies NumCopies Guarda el número sugerido de copias de impresión
vpPrintArea PrintArea Selecciona el límite de página usado para el renderizado de impresión
vpPrintClip PrintClip Selecciona el límite de página usado para el recorte de impresión
vpViewArea ViewArea Límite de página usado para el área de visualización en pantalla (PDF 1.4 12.2). Disponible desde HotPDF v2.29.0
vpViewClip ViewClip Límite de página usado para el recorte de visualización en pantalla (PDF 1.4 12.2). Disponible desde HotPDF v2.29.0

Valores de propiedades complementarias

Estas propiedades solo se escriben cuando la bandera de ViewerPreferences correspondiente está habilitada

Propiedad Valores
Direction LeftToRight, RightToLeft
NonFullScreenPageMode nfpmUseNone, nfpmUseOutlines, nfpmUseThumbs, nfpmUseOC, nfpmUseAttachments
PrintScaling psNone, psAppDefault
Duplex dupSimplex, dupDuplexFlipShortEdge, dupDuplexFlipLongEdge
PrintArea / PrintClip / ViewArea / ViewClip pbMediaBox, pbCropBox, pbBleedBox, pbTrimBox, pbArtBox

Integración de InitialZoom

InitialZoom complementa ViewerPreferences al controlar el modo inicial de visualización de la página cuando se abre el documento

Predeterminado: Desde HotPDF v2.3.11 el valor predeterminado es FitHeight (destino PDF /FitV), así que los documentos generados se abren con cada página ajustada a la altura de la ventana del visor. Establezca InitialZoom en FitNone para omitir el OpenAction y dejar que el visor use su propio zoom predeterminado

// Complete document presentation setup
HotPDF.ViewerPreferences := [vpFitWindow, vpCenterWindow, vpDisplayDocTitle];
HotPDF.InitialZoom := FitWidth;

// Technical document setup
HotPDF.ViewerPreferences := [vpDisplayDocTitle, vpPrintScaling];
HotPDF.InitialZoom := Zoom125;

// Presentation mode
HotPDF.ViewerPreferences := [vpFitWindow, vpHideToolbar, vpHideMenubar];
HotPDF.InitialZoom := FitPage;

Ejemplo de implementación

var
  VPref: THPDFViewerPreferences;
begin
  VPref := [vpFitWindow, vpCenterWindow, vpDisplayDocTitle];

  if EnableDirection then
  begin
    Include(VPref, vpDirection);
    HotPDF.Direction := RightToLeft;
  end;

  if EnablePrintScaling then
  begin
    Include(VPref, vpPrintScaling);
    HotPDF.PrintScaling := psNone;
  end;

  HotPDF.ViewerPreferences := VPref;
  HotPDF.InitialZoom := FitWidth;
end;

Notas de compatibilidad

  • Adobe Reader/Acrobat: Por lo general ofrece la compatibilidad más completa con ViewerPreferences
  • Otros visores: La compatibilidad varía porque estos valores son preferencias, no requisitos estrictos
  • Degradación elegante: Los visores conformes deben ignorar con seguridad los ajustes no admitidos

Aplicaciones de demostración

Las siguientes demos están sincronizadas con la compatibilidad actual de la biblioteca:

  • Demo\Delphi\ViewerPref
  • Demo\CBuilder\ViewerPref