ComposeNextLayout

Rozloženie stránky, stránkovanie, Form XObjects

Popis

Zloží jeden stavový dynamický fragment na plátne prirodzenej veľkosti, aplikuje politiku pretekania, zarovnania, stránkovania a priestoru toku a ohlási konečnú transformáciu umiestnenia

Syntax

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

Parametre

PageExistujúce číslo cieľovej stránky číslované od 1
SlotLeft, SlotTopPozícia cieľového slotu vľavo hore v aktuálnych jednotkách dokumentu
SlotWidth, SlotHeightKonečná kladná veľkosť cieľového slotu
Options.ContentWidth, Options.ContentHeightKonečné kladné prirodzené plátno odovzdané komponentu cez AvailableWidth a AvailableHeight
Options.OverflowPolicydopReject, dopClip alebo dopScaleDown
Options.HorizontalAlignmentdhaLeft, dhaCenter alebo dhaRight
Options.VerticalAlignmentdvaTop, dvaCenter alebo dvaBottom
Options.PaginationPolicyNormálne delenie, jednorazový núdzový režim ponechania pohromade alebo prísne úplné umiestnenie
Options.MinimumSlotHeightNezáporná výška slotu požadovaná pred klonovaním komponentu a začiatkom skladania
Options.MinimumFollowingHeightNezáporná výška vyhradená po konečnom vyriešenom fragmente pre ďalší komponent

Výsledok umiestnenia

PageNumber, CompositionIndexPotvrdená stránka a číslo úspešného skladania číslované od 1
SourceWidth, SourceHeightPrirodzený použitý obdĺžnik vrátený komponentom pred umiestnením
Left, Top, Width, HeightKonečný transformovaný použitý obdĺžnik pred vystrihnutím cieľa
SlotLeft, SlotTop, SlotWidth, SlotHeightPôvodná cieľová oblasť
TransformLogická afinná matica z lokálnych súradníc komponentu na konečné súradnice dokumentu zhora nadol
WasClippedTrue, keď vystrihnutie skryje časť transformovaného použitého obdĺžnika
WasScaledTrue, keď je proporcionálna mierka menšia ako 1

Poznámky

dopReject zachová cieľovú stránku a potvrdený stav komponentu, keď prirodzený použitý obdĺžnik presahuje ktorýkoľvek rozmer slotu

dopClip

dopScaleDown zachová prirodzenú mierku a použije vyvážený rozsah vystrihnutia grafického stavu okolo vyvolania Form XObject Min(1, SlotWidth / SourceWidth, SlotHeight / SourceHeight) zvolí

ContentWidth a zachová pomer strán komponentu Škálovanie nikdy nezväčší obsah, ktorý sa už zmestí Plátno Form XObject sleduje ContentHeight a

MinimumSlotHeight

MinimumFollowingHeight, zatiaľ čo zarovnanie používa komponentom ohlásený použitý obdĺžnik ukotvený v lokálnej súradnici nula Obsahový tok stránky sa stane vlastníkom umiestneného odkazu Form XObject skôr, než sa uvoľní dočasný handle zachytenia Slot kratší než HasMoreContent vráti opakovanie bez klonovania komponentu, vyvolania jeho spätného volania alebo vytvorenia dočasnej stránky

LastRetryReason neobmedzuje medziľahlé fragmenty a kontroluje sa iba vtedy, keď LastRequiredSlotHeight je false Opätovný pokus v priestore toku vráti prázdne umiestnenie, zachová všetky predtým potvrdené fragmenty a prostredníctvom

Prí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_ERROROverenie vstupu, spätného volania, geometrie, pretečenia alebo umiestnenia zlyhalo bez potvrdenia stavu
PDF_DYNAMIC_COMPONENT_MOREFragment bol potvrdený a zostáva ďalší obsah
PDF_DYNAMIC_COMPONENT_COMPLETEFragment dokončil reláciu alebo relácia už bola dokončená
PDF_DYNAMIC_COMPONENT_RETRYPolitika stránkovania alebo priestoru toku odložila nepotvrdený pokus do iného slotu

Pozri tiež

TPDFlibDynamicComponentSession, BeginFormXObject, ReleaseCapturedPage, DrawCapturedPage