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
Page | Existujúce číslo cieľovej stránky číslované od 1 |
|---|---|
SlotLeft, SlotTop | Pozícia cieľového slotu vľavo hore v aktuálnych jednotkách dokumentu |
SlotWidth, SlotHeight | Konečná kladná veľkosť cieľového slotu |
Options.ContentWidth, Options.ContentHeight | Konečné kladné prirodzené plátno odovzdané komponentu cez AvailableWidth a AvailableHeight |
Options.OverflowPolicy | dopReject, dopClip alebo dopScaleDown |
Options.HorizontalAlignment | dhaLeft, dhaCenter alebo dhaRight |
Options.VerticalAlignment | dvaTop, dvaCenter alebo dvaBottom |
Options.PaginationPolicy | Normálne delenie, jednorazový núdzový režim ponechania pohromade alebo prísne úplné umiestnenie |
Options.MinimumSlotHeight | Nezáporná výška slotu požadovaná pred klonovaním komponentu a začiatkom skladania |
Options.MinimumFollowingHeight | Nezáporná výška vyhradená po konečnom vyriešenom fragmente pre ďalší komponent |
Výsledok umiestnenia
PageNumber, CompositionIndex | Potvrdená stránka a číslo úspešného skladania číslované od 1 |
|---|---|
SourceWidth, SourceHeight | Prirodzený použitý obdĺžnik vrátený komponentom pred umiestnením |
Left, Top, Width, Height | Konečný transformovaný použitý obdĺžnik pred vystrihnutím cieľa |
SlotLeft, SlotTop, SlotWidth, SlotHeight | Pôvodná cieľová oblasť |
Transform | Logická afinná matica z lokálnych súradníc komponentu na konečné súradnice dokumentu zhora nadol |
WasClipped | True, keď vystrihnutie skryje časť transformovaného použitého obdĺžnika |
WasScaled | True, 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_ERROR | Overenie vstupu, spätného volania, geometrie, pretečenia alebo umiestnenia zlyhalo bez potvrdenia stavu |
|---|---|
PDF_DYNAMIC_COMPONENT_MORE | Fragment bol potvrdený a zostáva ďalší obsah |
PDF_DYNAMIC_COMPONENT_COMPLETE | Fragment dokončil reláciu alebo relácia už bola dokončená |
PDF_DYNAMIC_COMPONENT_RETRY | Politika stránkovania alebo priestoru toku odložila nepotvrdený pokus do iného slotu |
Pozri tiež
TPDFlibDynamicComponentSession, BeginFormXObject, ReleaseCapturedPage, DrawCapturedPage