ComposeNextLayout

Sayfa düzeni, sayfalandırma, Form XObjects

Açıklama

Durumlu bir dinamik parçayı doğal boyutlu bir tuval üzerinde bileşimler, taşma, hizalama, sayfalandırma ve akış alanı ilkesini uygular ve nihai yerleşim dönüşümünü bildirir

Sözdizimi

Function TPDFlibDynamicComponentSession.ComposeNextLayout(
  Page: Integer; SlotLeft, SlotTop, SlotWidth, SlotHeight: Double;
  Const Options: TPDFlibDynamicLayoutOptions;
  Out Placement: TPDFlibDynamicPagePlacement): Integer;

Parametreler

PageVar olan 1 tabanlı hedef sayfa numarası
SlotLeft, SlotTopGeçerli belge birimlerinde sol üst hedef yuva konumu
SlotWidth, SlotHeightSonlu pozitif hedef yuva boyutu
Options.ContentWidth, Options.ContentHeightAvailableWidth ve AvailableHeight üzerinden bileşene geçirilen, sonlu pozitif doğal tuval
Options.OverflowPolicydopReject, dopClip veya dopScaleDown
Options.HorizontalAlignmentdhaLeft, dhaCenter veya dhaRight
Options.VerticalAlignmentdvaTop, dvaCenter veya dvaBottom
Options.PaginationPolicyNormal bölme, tek atımlık birlikte-tut geri düşüşü veya katı eksiksiz yerleşim
Options.MinimumSlotHeightBileşen klonlaması ve bileşim başlangıcından önce gereken, negatif olmayan yuva yüksekliği
Options.MinimumFollowingHeightSon çözümlenmiş parçadan sonra sonraki bileşen için ayrılan, negatif olmayan yükseklik

Yerleşim sonucu

PageNumber, CompositionIndexKaydedilen sayfa ve 1 tabanlı başarılı bileşim numarası
SourceWidth, SourceHeightYerleşimden önce bileşenin döndürdüğü doğal kullanılan dikdörtgen
Left, Top, Width, HeightHedef kırpmasından önceki nihai dönüştürülmüş kullanılan dikdörtgen
SlotLeft, SlotTop, SlotWidth, SlotHeightÖzgün hedef bölge
TransformBileşen-yerel koordinatlardan nihai yukarıdan aşağıya belge koordinatlarına mantıksal afin matris
WasClippedKırpma, dönüştürülmüş kullanılan dikdörtgenin bir bölümünü gizlediğinde True
WasScaledOranlı ölçek 1'den küçük olduğunda True

Açıklamalar

dopReject, doğal kullanılan dikdörtgen yuva boyutlarından birini aştığında hedef sayfayı ve işlenmiş bileşen durumunu korur

dopClip doğal ölçeği korur ve Form XObject çağrısının çevresinde dengeli bir grafik durumu kırpma kapsamı kullanır

dopScaleDown, Min(1, SlotWidth / SourceWidth, SlotHeight / SourceHeight) seçer ve bileşen en boy oranını korur

Ölçekleme, zaten sığan içeriği asla büyütmez

Form XObject tuvali ContentWidth ve ContentHeight izler; hizalama ise yerel koordinat sıfırına sabitlenmiş, bileşenin bildirdiği kullanılan dikdörtgeni kullanır

Geçici yakalama tutamacı bırakılmadan önce sayfa içerik akışı, yerleştirilen Form XObject referansının sahibi olur

MinimumSlotHeight'den kısa bir yuva, bileşeni klonlamadan, geri çağrımını çağırmadan veya geçici bir sayfa oluşturmadan yeniden deneme döndürür

MinimumFollowingHeight ara parçaları kısıtlamaz ve yalnızca HasMoreContent false olduğunda denetlenir

Bir akış alanı yeniden denemesi boş bir yerleştirme döndürür, daha önce işlenmiş tüm parçaları korur ve gerekçesini ile gereken yüksekliği LastRetryReason ve LastRequiredSlotHeight üzerinden açığa çıkarır

Örnek

Options := TPDFlibDynamicComponentSession.CreateLayoutOptions(
  640, 360, dopScaleDown, dhaLeft, dvaTop, dppAllowSplit, 72, 24);

Status := Session.ComposeNextLayout(
  PageNumber, 36, 72, 540, 240, Options, Placement);

if Status <> PDF_DYNAMIC_COMPONENT_ERROR then
begin
  FinalScale := Placement.Transform.M11;
  FinalLeft := Placement.Left;
  FinalTop := Placement.Top;
end;

Dönüş değerleri

PDF_DYNAMIC_COMPONENT_ERRORGirdi, geri çağırma, geometri, taşma veya yerleşim doğrulaması durum kesinleştirmeden başarısız oldu
PDF_DYNAMIC_COMPONENT_MOREParça kesinleştirildi ve işlenecek daha fazla içerik var
PDF_DYNAMIC_COMPONENT_COMPLETEParça oturumu tamamladı veya oturum zaten tamamlanmıştı
PDF_DYNAMIC_COMPONENT_RETRYSayfalama veya akış alanı ilkesi kesinleştirilmemiş denemeyi başka bir yuvaya erteledi

Ayrıca bkz.

TPDFlibDynamicComponentSession, BeginFormXObject, ReleaseCapturedPage, DrawCapturedPage