ComposeNextLayout

Rozvržení stránek, stránkování, Form XObjects

Popis

Komponuje jeden stavový dynamický fragment na plátno přirozené velikosti, aplikuje politiku přetečení, zarovnání, stránkování a prostoru toku a ohlásí konečnou transformaci umístění

Syntaxe

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

Parametry

PageExistující číslo cílové stránky počítané od 1
SlotLeft, SlotTopCílová pozice levého horního rohu slotu v aktuálních jednotkách dokumentu
SlotWidth, SlotHeightKonečná kladná velikost cílového slotu
Options.ContentWidth, Options.ContentHeightKonečné kladné přirozené plátno předané komponentě přes AvailableWidth a AvailableHeight
Options.OverflowPolicydopReject, dopClip nebo dopScaleDown
Options.HorizontalAlignmentdhaLeft, dhaCenter nebo dhaRight
Options.VerticalAlignmentdvaTop, dvaCenter nebo dvaBottom
Options.PaginationPolicyNormální dělení, jednorázový fallback držení pohromadě nebo přísné kompletní umístění
Options.MinimumSlotHeightNezáporná výška slotu vyžadovaná před klonováním komponenty a zahájením kompozice
Options.MinimumFollowingHeightNezáporná výška rezervovaná za finálním vyřešeným fragmentem pro další komponentu

Výsledek umístění

PageNumber, CompositionIndexPotvrzená stránka a číslo úspěšné kompozice počítané od 1
SourceWidth, SourceHeightPřirozený použitý obdélník vrácený komponentou před umístěním
Left, Top, Width, HeightFinální transformovaný použitý obdélník před ořezem na cíl
SlotLeft, SlotTop, SlotWidth, SlotHeightPůvodní cílová oblast
TransformLogická afinní matice z lokálních souřadnic komponenty do finálních souřadnic dokumentu shora dolů
WasClippedTrue, když ořez skryje část transformovaného použitého obdélníku
WasScaledTrue, je-li proporcionální měřítko menší než 1

Poznámky

dopReject zachovává cílovou stránku a potvrzený stav komponenty, když přirozený použitý obdélník překročí některý rozměr slotu

dopClip zachovává přirozenou míru a používá vyvážený rozsah ořezu grafického stavu kolem vyvolání Form XObject

dopScaleDown volí Min(1, SlotWidth / SourceWidth, SlotHeight / SourceHeight) a zachovává poměr stran komponenty

Škálování nikdy nezvětší obsah, který už pasuje

Plátno Form XObject sleduje ContentWidth a ContentHeight, zatímco zarovnání používá komponentou hlášený použitý obdélník ukotvený v lokální souřadnici nula

Obsahový proud stránky vlastní umístěnou referenci Form XObject, než se uvolní dočasný popisovač zachycení

Slot kratší než MinimumSlotHeight vrátí opakování bez klonování komponenty, volání jejího zpětného volání nebo vytváření dočasné stránky

MinimumFollowingHeight neomezuje mezikusové fragmenty a kontroluje se jen tehdy, když je HasMoreContent false

Opakování kvůli prostoru toku vrátí prázdné umístění, zachová všechny dříve potvrzené fragmenty a vystaví svůj důvod a požadovanou výšku prostřednictvím LastRetryReason a LastRequiredSlotHeight

Příklad

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;

Návratové hodnoty

PDF_DYNAMIC_COMPONENT_ERRORVstup, zpětné volání, geometrie, přetečení nebo validace umístění selhaly bez potvrzení stavu
PDF_DYNAMIC_COMPONENT_MOREFragment byl potvrzen a zbývá další obsah
PDF_DYNAMIC_COMPONENT_COMPLETEFragment dokončil relaci, nebo relace již byla dokončena
PDF_DYNAMIC_COMPONENT_RETRYZásada stránkování nebo prostoru toku odložila nepotvrzenou zkoušku do jiného slotu

Viz také

TPDFlibDynamicComponentSession, BeginFormXObject, ReleaseCapturedPage, DrawCapturedPage