ComposeNextLayout
Puslapio maketas, puslapiavimas, Form XObjects
Aprašymas
Komponuoja vieną būseningą dinaminį fragmentą natūralaus dydžio drobėje, taiko perpildymo, lygiavimo, puslapiavimo ir srauto erdvės strategijas ir praneša galutinę išdėstymo transformaciją
Sintaksė
Function TPDFlibDynamicComponentSession.ComposeNextLayout(
Page: Integer; SlotLeft, SlotTop, SlotWidth, SlotHeight: Double;
Const Options: TPDFlibDynamicLayoutOptions;
Out Placement: TPDFlibDynamicPagePlacement): Integer;
Parametrai
Page | Esamas paskirties puslapio numeris (numeruojamas nuo 1) |
|---|---|
SlotLeft, SlotTop | Paskirties lizdo viršutinis kairysis kampas dabartiniais dokumento vienetais |
SlotWidth, SlotHeight | Baigtinis teigiamas paskirties lizdo dydis |
Options.ContentWidth, Options.ContentHeight | Baigtinė teigiama natūralioji drobė, perduodama komponentui per AvailableWidth ir AvailableHeight |
Options.OverflowPolicy | dopReject, dopClip or dopScaleDown |
Options.HorizontalAlignment | dhaLeft, dhaCenter or dhaRight |
Options.VerticalAlignment | dvaTop, dvaCenter or dvaBottom |
Options.PaginationPolicy | Įprastas skaidymas, vienkartinis laikymo kartu atsarginis variantas arba griežtas pilnas išdėstymas |
Options.MinimumSlotHeight | Neneigiamas lizdo aukštis, reikalingas prieš komponento klonavimą ir komponavimo pradžią |
Options.MinimumFollowingHeight | Neneigiamas aukštis, rezervuojamas po galutinio išspręsto fragmento kitam komponentui |
Išdėstymo rezultatas
PageNumber, CompositionIndex | Įgyvendintasis puslapis ir sėkmingo komponavimo numeris (numeruojamas nuo 1) |
|---|---|
SourceWidth, SourceHeight | Natūralioji naudotoji stačiakampė, grąžinta komponento prieš išdėstymą |
Left, Top, Width, Height | Galutinė transformuotoji naudotoji stačiakampė prieš paskirties apkarpymą |
SlotLeft, SlotTop, SlotWidth, SlotHeight | Pradinė paskirties sritis |
Transform | Loginė afininė matrica iš komponento vietinių koordinatės į galutines dokumento koordinates iš viršaus į apačią |
WasClipped | True, kai apkarpymas paslepia dalį transformuotosios naudotosios stačiakampės |
WasScaled | True, kai proporcingasis mastelis mažesnis nei 1 |
Pastabos
dopReject išsaugo paskirties puslapį ir įgyvendintąją komponento būseną, kai natūralioji naudotoji stačiakampė viršija bet kurį lizdo išmatavimą
dopClip
dopScaleDown išlaiko natūralųjį mastelį ir naudoja subalansuotą grafikos būsenos apkarpymo sritį aplink Form XObject kvietimą
Min(1, SlotWidth / SourceWidth, SlotHeight / SourceHeight) pasirenka
ContentWidth ir išlaiko komponento kraštinių santykį
Mastelio keitimas niekada nedidina turinio, kuris jau telpa
Form XObject drobė seka ContentHeight ir
MinimumSlotHeight
MinimumFollowingHeight, o lygiavimas naudoja komponento praneštąją naudotąją stačiakampę, pritvirtintą prie vietinių koordinatės nulio
Puslapio turinio srautas perima išdėstytosios Form XObject nuorodą prieš atlaisvinant laikinąją fiksavimo rankenėlę
Lizdas, trumpesnis nei HasMoreContent, grąžina pakartotinį bandymą neklonavęs komponento, nekviesęs jo atgalinio iškvietimo ir nesukūręs laikinojo puslapio
LastRetryReason nevaržo tarpinių fragmentų ir tikrinamas tik tada, kai LastRequiredSlotHeight yra false
Pakartotinis bandymas srauto erdvėje grąžina tuščią išdėstymą, išsaugo visus anksčiau patvirtintus fragmentus ir savo priežastį bei reikiamą aukštį atskleidžia per
Pavyzdys
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;
Grąžinamos reikšmės
PDF_DYNAMIC_COMPONENT_ERROR | Įvesties, atgalinio iškvietimo, geometrijos, perpildymo arba išdėstymo patikra nepavyko neįtvirtinus būsenos |
|---|---|
PDF_DYNAMIC_COMPONENT_MORE | Fragmentas buvo patvirtintas ir turinio dar yra daugiau |
PDF_DYNAMIC_COMPONENT_COMPLETE | Fragmentas užbaigė seansą arba seansas jau buvo baigtas |
PDF_DYNAMIC_COMPONENT_RETRY | Puslapiavimo arba srauto erdvės politika nepatvirtintą bandymą atidėjo kitai vietai |
Taip pat žr.
TPDFlibDynamicComponentSession, BeginFormXObject, ReleaseCapturedPage, DrawCapturedPage