|
ViewerPreferences Complete Reference
ViewerPreferences allow you to control how PDF documents are presented in supporting viewers and how some default print settings are initialized. The current HotPDF library supports 14 ViewerPreferences values plus the related InitialZoom property.
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 |
Description |
| vpHideToolbar |
None |
Hide the viewer toolbar. |
| vpHideMenubar |
None |
Hide the viewer menu bar. |
| vpHideWindowUI |
None |
Hide UI elements such as scroll bars and navigation controls. |
| vpFitWindow |
None |
Resize the document window to fit the first displayed page. |
| vpCenterWindow |
None |
Center the document window on the screen. |
| vpDisplayDocTitle |
Title |
Display the document title instead of the file name in the viewer caption. |
| vpDirection |
Direction |
Store the predominant reading order using LeftToRight or RightToLeft. |
| vpNonFullScreenPageMode |
NonFullScreenPageMode |
Choose the page mode to use after leaving full-screen mode. |
| vpPrintScaling |
PrintScaling |
Choose psNone or psAppDefault for default print scaling. |
| vpDuplex |
Duplex |
Choose simplex or duplex printing behavior. |
| vpPickTrayByPDFSize |
None |
Request printer tray selection based on the PDF page size. |
| vpNumCopies |
NumCopies |
Store the suggested print copy count. |
| vpPrintArea |
PrintArea |
Select the page boundary used for print rendering. |
| vpPrintClip |
PrintClip |
Select the page boundary used for print clipping. |
| 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
These properties are written only when the matching ViewerPreferences flag is enabled.
| Property |
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 complements ViewerPreferences by controlling the initial page display mode when the document is opened.
Default: Since HotPDF v2.3.11 the default value is FitHeight (PDF /FitV destination), so generated documents open with each page fitted to the viewer's window height. Set InitialZoom to FitNone to omit the OpenAction and let the viewer fall back to its own default zoom.
// 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: Usually provides the most complete ViewerPreferences support.
- Other Viewers: Support varies because these values are preferences, not hard requirements.
- Graceful Degradation: Unsupported settings should be ignored safely by conforming viewers.
Demo Applications
The following demos are synchronized with the current library support:
- Demo\Delphi\ViewerPref
- Demo\CBuilder\ViewerPref
|