Pełna dokumentacja ViewerPreferences

ViewerPreferences pozwalają kontrolować sposób prezentacji dokumentów PDF w obsługujących je viewerach oraz inicjalizację części default print settings. Aktualna biblioteka HotPDF obsługuje 14 wartości ViewerPreferences oraz powiązaną właściwość InitialZoom

Aktualne typy danych

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;

Obsługiwane ViewerPreferences

Opcja Właściwość towarzysząca Opis
vpHideToolbar Brak Ukrywa toolbar viewera
vpHideMenubar Brak Ukrywa menu bar viewera
vpHideWindowUI Brak Ukrywa elementy UI, takie jak scroll bars i navigation controls
vpFitWindow Brak Zmienia rozmiar document window, aby dopasować pierwszą wyświetlaną stronę
vpCenterWindow Brak Centruje document window na ekranie
vpDisplayDocTitle Title Wyświetla tytuł dokumentu zamiast nazwy pliku w caption viewera
vpDirection Direction Zapisuje dominujący reading order z użyciem LeftToRight lub RightToLeft
vpNonFullScreenPageMode NonFullScreenPageMode Wybiera page mode używany po wyjściu z full-screen mode
vpPrintScaling PrintScaling Wybiera psNone lub psAppDefault dla default print scaling
vpDuplex Duplex Wybiera zachowanie drukowania simplex lub duplex
vpPickTrayByPDFSize Brak Żąda wyboru printer tray na podstawie rozmiaru strony PDF
vpNumCopies NumCopies Zapisuje sugerowaną liczbę kopii wydruku
vpPrintArea PrintArea Wybiera page boundary używane do print rendering
vpPrintClip PrintClip Wybiera page boundary używane do print clipping
vpViewArea ViewArea Page boundary używane dla on-screen view area (PDF 1.4 12.2). Dostępne od HotPDF v2.29.0
vpViewClip ViewClip Page boundary używane dla on-screen view clipping (PDF 1.4 12.2). Dostępne od HotPDF v2.29.0

Wartości właściwości towarzyszących

Te właściwości są zapisywane tylko wtedy, gdy włączona jest odpowiadająca im flaga ViewerPreferences

Właściwość Wartości
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

Integracja InitialZoom

InitialZoom uzupełnia ViewerPreferences, kontrolując początkowy tryb wyświetlania strony po otwarciu dokumentu

Domyślnie: Od HotPDF v2.3.11 wartością domyślną jest FitHeight (destination PDF /FitV), więc wygenerowane dokumenty otwierają się z każdą stroną dopasowaną do wysokości okna viewera. Ustaw InitialZoom na FitNone, aby pominąć OpenAction i pozwolić viewerowi użyć własnego default zoom

// Pełna konfiguracja prezentacji dokumentu
HotPDF.ViewerPreferences := [vpFitWindow, vpCenterWindow, vpDisplayDocTitle];
HotPDF.InitialZoom := FitWidth;

// Konfiguracja dokumentu technicznego
HotPDF.ViewerPreferences := [vpDisplayDocTitle, vpPrintScaling];
HotPDF.InitialZoom := Zoom125;

// Tryb prezentacji
HotPDF.ViewerPreferences := [vpFitWindow, vpHideToolbar, vpHideMenubar];
HotPDF.InitialZoom := FitPage;

Przykład implementacji

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;

Uwagi dotyczące zgodności

  • Adobe Reader/Acrobat: Zwykle zapewnia najpełniejszą obsługę ViewerPreferences
  • Inne viewery: Obsługa różni się, ponieważ te wartości są preferencjami, a nie twardymi wymaganiami
  • Łagodna degradacja: Nieobsługiwane ustawienia powinny być bezpiecznie ignorowane przez zgodne viewery

Aplikacje demo

Następujące demos są zsynchronizowane z aktualną obsługą biblioteki:

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