ViewerPreferences tam başvurusu

ViewerPreferences, PDF documents öğelerinin destekleyen viewerlar içinde nasıl sunulacağını ve bazı default print settings değerlerinin nasıl başlatılacağını denetlemenizi sağlar. Geçerli HotPDF library, ilgili InitialZoom özelliğiyle birlikte 14 ViewerPreferences değerini destekler

Geçerli veri türleri

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;

Desteklenen ViewerPreferences

Seçenek İlgili özellik Açıklama
vpHideToolbar Yok Viewer toolbar öğesini gizler
vpHideMenubar Yok Viewer menu bar öğesini gizler
vpHideWindowUI Yok Scroll bars ve navigation controls gibi UI elements öğelerini gizler
vpFitWindow Yok Document window boyutunu ilk görüntülenen page sığacak şekilde değiştirir
vpCenterWindow Yok Document window öğesini ekranda ortalar
vpDisplayDocTitle Title Viewer caption içinde file name yerine document title gösterir
vpDirection Direction Baskın reading order değerini LeftToRight veya RightToLeft kullanarak saklar
vpNonFullScreenPageMode NonFullScreenPageMode Full-screen mode çıkışından sonra kullanılacak page mode değerini seçer
vpPrintScaling PrintScaling Default print scaling için psNone veya psAppDefault seçer
vpDuplex Duplex Simplex veya duplex printing behavior seçer
vpPickTrayByPDFSize Yok PDF page size temelinde printer tray seçimi ister
vpNumCopies NumCopies Önerilen print copy count değerini saklar
vpPrintArea PrintArea Print rendering için kullanılan page boundary değerini seçer
vpPrintClip PrintClip Print clipping için kullanılan page boundary değerini seçer
vpViewArea ViewArea On-screen view area için kullanılan page boundary (PDF 1.4 12.2). HotPDF v2.29.0 sürümünden beri kullanılabilir
vpViewClip ViewClip On-screen view clipping için kullanılan page boundary (PDF 1.4 12.2). HotPDF v2.29.0 sürümünden beri kullanılabilir

İlgili özellik değerleri

Bu özellikler yalnızca eşleşen ViewerPreferences flag etkin olduğunda yazılır

Özellik Değerler
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 entegrasyonu

InitialZoom, document açıldığında initial page display mode değerini denetleyerek ViewerPreferences öğelerini tamamlar

Varsayılan: HotPDF v2.3.11 sürümünden beri default value FitHeight (PDF /FitV destination) değeridir; böylece üretilen documents, her page viewer window yüksekliğine sığdırılmış olarak açılır. OpenAction öğesini atlamak ve viewerın kendi default zoom değerine dönmesini sağlamak için InitialZoom değerini FitNone yapın

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

// Teknik document kurulumu
HotPDF.ViewerPreferences := [vpDisplayDocTitle, vpPrintScaling];
HotPDF.InitialZoom := Zoom125;

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

Uygulama örneği

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;

Uyumluluk notları

  • Adobe Reader/Acrobat: Genellikle en eksiksiz ViewerPreferences desteğini sağlar
  • Diğer viewerlar: Destek değişir, çünkü bu değerler sıkı gereksinimler değil tercihlerdir
  • Sorunsuz uyum: Desteklenmeyen ayarlar conforming viewers tarafından güvenle yok sayılmalıdır

Demo uygulamaları

Aşağıdaki demos geçerli library support ile senkronizedir:

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