Referência completa de ViewerPreferences

ViewerPreferences permite controlar como documentos PDF são apresentados em visualizadores compatíveis e como algumas configurações padrão de impressão são inicializadas. A biblioteca HotPDF atual oferece suporte a 14 valores ViewerPreferences, além da propriedade relacionada InitialZoom

Current Data Types

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

Option Companion Property Descrição
vpHideToolbar None Hide the viewer toolbar.
vpHideMenubar None Hide the viewer menu bar.
vpHideWindowUI None Oculta elementos da interface, como barras de rolagem e controles de navegação
vpFitWindow None Redimensiona a janela do documento para ajustar a primeira página exibida
vpCenterWindow None Centraliza a janela do documento na tela
vpDisplayDocTitle Title Exibe o título do documento em vez do nome do arquivo na legenda do visualizador
vpDirection Direction Store the predominant reading order using LeftToRight or RightToLeft.
vpNonFullScreenPageMode NonFullScreenPageMode Escolhe o modo de página usado após sair do modo de tela cheia
vpPrintScaling PrintScaling Choose psNone or psAppDefault for default print scaling.
vpDuplex Duplex Escolhe o comportamento de impressão simplex ou duplex
vpPickTrayByPDFSize None Solicita a seleção da bandeja da impressora com base no tamanho da página PDF
vpNumCopies NumCopies Store the suggested print copy count.
vpPrintArea PrintArea Seleciona o limite de página usado para renderização de impressão
vpPrintClip PrintClip Seleciona o limite de página usado para recorte de impressão
vpViewArea ViewArea Page boundary used for the on-screen view area (PDF 1.4 12.2). Available since HotPDF v2.29.0.
vpViewClip ViewClip Page boundary used for the on-screen view clipping (PDF 1.4 12.2). Available since HotPDF v2.29.0.

Companion Property Values

Essas propriedades são gravadas somente quando a flag ViewerPreferences correspondente está habilitada

Propriedade Values
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

InitialZoom Integration

InitialZoom complementa ViewerPreferences ao controlar o modo inicial de exibição de página quando o documento é aberto

Padrão: desde o HotPDF v2.3.11, o valor padrão é FitHeight (destino PDF /FitV), portanto documentos gerados abrem com cada página ajustada à altura da janela do visualizador. Defina InitialZoom como FitNone para omitir OpenAction e permitir que o visualizador use seu próprio zoom padrão

// 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;

Implementation Example

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;

Compatibility Notes

  • No Adobe Reader/Acrobat: normalmente fornece o suporte mais completo a ViewerPreferences
  • Em outros visualizadores: o suporte varia porque esses valores são preferências, não requisitos rígidos
  • Degradação gradual: configurações sem suporte devem ser ignoradas com segurança por visualizadores conformes

Demo Applications

As seguintes demos estão sincronizadas com o suporte atual da biblioteca:

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