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
Page | Existující číslo cílové stránky počítané od 1 |
|---|---|
SlotLeft, SlotTop | Cílová pozice levého horního rohu slotu v aktuálních jednotkách dokumentu |
SlotWidth, SlotHeight | Konečná kladná velikost cílového slotu |
Options.ContentWidth, Options.ContentHeight | Konečné kladné přirozené plátno předané komponentě přes AvailableWidth a AvailableHeight |
Options.OverflowPolicy | dopReject, dopClip nebo dopScaleDown |
Options.HorizontalAlignment | dhaLeft, dhaCenter nebo dhaRight |
Options.VerticalAlignment | dvaTop, dvaCenter nebo dvaBottom |
Options.PaginationPolicy | Normální dělení, jednorázový fallback držení pohromadě nebo přísné kompletní umístění |
Options.MinimumSlotHeight | Nezáporná výška slotu vyžadovaná před klonováním komponenty a zahájením kompozice |
Options.MinimumFollowingHeight | Nezáporná výška rezervovaná za finálním vyřešeným fragmentem pro další komponentu |
Výsledek umístění
PageNumber, CompositionIndex | Potvrzená stránka a číslo úspěšné kompozice počítané od 1 |
|---|---|
SourceWidth, SourceHeight | Přirozený použitý obdélník vrácený komponentou před umístěním |
Left, Top, Width, Height | Finální transformovaný použitý obdélník před ořezem na cíl |
SlotLeft, SlotTop, SlotWidth, SlotHeight | Původní cílová oblast |
Transform | Logická afinní matice z lokálních souřadnic komponenty do finálních souřadnic dokumentu shora dolů |
WasClipped | True, když ořez skryje část transformovaného použitého obdélníku |
WasScaled | True, 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_ERROR | Vstup, zpětné volání, geometrie, přetečení nebo validace umístění selhaly bez potvrzení stavu |
|---|---|
PDF_DYNAMIC_COMPONENT_MORE | Fragment byl potvrzen a zbývá další obsah |
PDF_DYNAMIC_COMPONENT_COMPLETE | Fragment dokončil relaci, nebo relace již byla dokončena |
PDF_DYNAMIC_COMPONENT_RETRY | Zásada stránkování nebo prostoru toku odložila nepotvrzenou zkoušku do jiného slotu |
Viz také
TPDFlibDynamicComponentSession, BeginFormXObject, ReleaseCapturedPage, DrawCapturedPage