ViewerPreferences Complete Reference

ViewerPreferences permitem controlar como os documentos PDF são apresentados em viewers que dão suporte e como algumas configurações padrão de impressão são inicializadas. A biblioteca HotPDF atual suporta 14 valores de ViewerPreferences mais a 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 Propriedade complementar Descrição
vpHideToolbar None Oculta a barra de ferramentas do viewer.
vpHideMenubar None Oculta a barra de menus do viewer.
vpHideWindowUI None Oculta elementos de UI como barras de rolagem e controles de navegação.
vpFitWindow None Redimensiona a janela do documento para caber 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 viewer.
vpDirection Direction Armazena a ordem de leitura predominante usando LeftToRight ou RightToLeft.
vpNonFullScreenPageMode NonFullScreenPageMode Escolhe o modo de página a usar após sair do modo tela cheia.
vpPrintScaling PrintScaling Escolhe psNone ou psAppDefault para a escala padrão de impressão.
vpDuplex Duplex Escolhe o comportamento de impressão simplex ou duplex.
vpPickTrayByPDFSize None Pede a seleção da bandeja da impressora com base no tamanho da página PDF.
vpNumCopies NumCopies Armazena a contagem sugerida de cópias de impressão.
vpPrintArea PrintArea Seleciona o limite de página usado na renderização de impressão.
vpPrintClip PrintClip Seleciona o limite de página usado no clipping de impressão.
vpViewArea ViewArea Limite de página usado na área de visualização na tela (PDF 1.4 12.2). Disponível desde o HotPDF v2.29.0.
vpViewClip ViewClip Limite de página usado no clipping da visualização na tela (PDF 1.4 12.2). Disponível desde o HotPDF v2.29.0.

Valores da propriedade complementar

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

Propriedade 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

InitialZoom Integration

InitialZoom complementa o ViewerPreferences controlando o modo inicial de exibição da página quando o documento é aberto.

Default: Desde o HotPDF v2.3.11 o valor padrão é FitHeight (destino PDF /FitV), de modo que os documentos gerados abrem com cada página ajustada à altura da janela do viewer. Defina InitialZoom como FitNone para omitir o OpenAction e deixar o viewer recorrer ao próprio zoom padrão dele.

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

  • Adobe Reader/Acrobat: Normalmente fornece o suporte a ViewerPreferences mais completo.
  • Other Viewers: O suporte varia, porque esses valores são preferências, não requisitos rígidos.
  • Graceful Degradation: Configurações não suportadas devem ser ignoradas com segurança por viewers em conformidade.

Demo Applications

Os demos a seguir estão sincronizados com o suporte atual da biblioteca:

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