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
Page | Var olan 1 tabanlı hedef sayfa numarası |
|---|---|
SlotLeft, SlotTop | Geçerli belge birimlerinde sol üst hedef yuva konumu |
SlotWidth, SlotHeight | Sonlu pozitif hedef yuva boyutu |
Options.ContentWidth, Options.ContentHeight | AvailableWidth ve AvailableHeight üzerinden bileşene geçirilen, sonlu pozitif doğal tuval |
Options.OverflowPolicy | dopReject, dopClip veya dopScaleDown |
Options.HorizontalAlignment | dhaLeft, dhaCenter veya dhaRight |
Options.VerticalAlignment | dvaTop, dvaCenter veya dvaBottom |
Options.PaginationPolicy | Normal bölme, tek atımlık birlikte-tut geri düşüşü veya katı eksiksiz yerleşim |
Options.MinimumSlotHeight | Bileşen klonlaması ve bileşim başlangıcından önce gereken, negatif olmayan yuva yüksekliği |
Options.MinimumFollowingHeight | Son çözümlenmiş parçadan sonra sonraki bileşen için ayrılan, negatif olmayan yükseklik |
Yerleşim sonucu
PageNumber, CompositionIndex | Kaydedilen sayfa ve 1 tabanlı başarılı bileşim numarası |
|---|---|
SourceWidth, SourceHeight | Yerleşimden önce bileşenin döndürdüğü doğal kullanılan dikdörtgen |
Left, Top, Width, Height | Hedef kırpmasından önceki nihai dönüştürülmüş kullanılan dikdörtgen |
SlotLeft, SlotTop, SlotWidth, SlotHeight | Özgün hedef bölge |
Transform | Bileşen-yerel koordinatlardan nihai yukarıdan aşağıya belge koordinatlarına mantıksal afin matris |
WasClipped | Kırpma, dönüştürülmüş kullanılan dikdörtgenin bir bölümünü gizlediğinde True |
WasScaled | Oranlı ö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_ERROR | Girdi, geri çağırma, geometri, taşma veya yerleşim doğrulaması durum kesinleştirmeden başarısız oldu |
|---|---|
PDF_DYNAMIC_COMPONENT_MORE | Parça kesinleştirildi ve işlenecek daha fazla içerik var |
PDF_DYNAMIC_COMPONENT_COMPLETE | Parça oturumu tamamladı veya oturum zaten tamamlanmıştı |
PDF_DYNAMIC_COMPONENT_RETRY | Sayfalama veya akış alanı ilkesi kesinleştirilmemiş denemeyi başka bir yuvaya erteledi |
Ayrıca bkz.
TPDFlibDynamicComponentSession, BeginFormXObject, ReleaseCapturedPage, DrawCapturedPage