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

PageEsamas paskirties puslapio numeris (numeruojamas nuo 1)
SlotLeft, SlotTopPaskirties lizdo viršutinis kairysis kampas dabartiniais dokumento vienetais
SlotWidth, SlotHeightBaigtinis teigiamas paskirties lizdo dydis
Options.ContentWidth, Options.ContentHeightBaigtinė teigiama natūralioji drobė, perduodama komponentui per AvailableWidth ir AvailableHeight
Options.OverflowPolicydopReject, dopClip or dopScaleDown
Options.HorizontalAlignmentdhaLeft, dhaCenter or dhaRight
Options.VerticalAlignmentdvaTop, dvaCenter or dvaBottom
Options.PaginationPolicyĮprastas skaidymas, vienkartinis laikymo kartu atsarginis variantas arba griežtas pilnas išdėstymas
Options.MinimumSlotHeightNeneigiamas lizdo aukštis, reikalingas prieš komponento klonavimą ir komponavimo pradžią
Options.MinimumFollowingHeightNeneigiamas 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, SourceHeightNatūralioji naudotoji stačiakampė, grąžinta komponento prieš išdėstymą
Left, Top, Width, HeightGalutinė transformuotoji naudotoji stačiakampė prieš paskirties apkarpymą
SlotLeft, SlotTop, SlotWidth, SlotHeightPradinė paskirties sritis
TransformLoginė afininė matrica iš komponento vietinių koordinatės į galutines dokumento koordinates iš viršaus į apačią
WasClippedTrue, kai apkarpymas paslepia dalį transformuotosios naudotosios stačiakampės
WasScaledTrue, 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_MOREFragmentas buvo patvirtintas ir turinio dar yra daugiau
PDF_DYNAMIC_COMPONENT_COMPLETEFragmentas užbaigė seansą arba seansas jau buvo baigtas
PDF_DYNAMIC_COMPONENT_RETRYPuslapiavimo arba srauto erdvės politika nepatvirtintą bandymą atidėjo kitai vietai

Taip pat žr.

TPDFlibDynamicComponentSession, BeginFormXObject, ReleaseCapturedPage, DrawCapturedPage