ComposeNextLayout

Pagina-indeling, paginering, Form XObjects

Beschrijving

Stelt één stateful dynamisch fragment samen op een canvas met natuurlijke grootte, past overloop-, uitlijnings-, paginerings- en stroomruimtebeleid toe en meldt de uiteindelijke placingstransformatie

Syntaxis

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

Syntaxis

PageBestaand doelpaginanummer beginnend bij 1
SlotLeft, SlotTopBestemmingsleufpositie linksboven in de huidige documenteenheden
SlotWidth, SlotHeightEindige positieve bestemmingsleufgrootte
Options.ContentWidth, Options.ContentHeightEindig positief natuurlijk canvas dat via AvailableWidth en AvailableHeight aan de component wordt doorgegeven
Options.OverflowPolicydopReject, dopClip of dopScaleDown
Options.HorizontalAlignmentdhaLeft, dhaCenter of dhaRight
Options.VerticalAlignmentdvaTop, dvaCenter of dvaBottom
Options.PaginationPolicyNormaal splitsen, eenmalige keep-together-terugval of strikte volledige plaatsing
Options.MinimumSlotHeightNiet-negatieve sleufhoogte die vereist is voordat componentklonering en samenstelling beginnen
Options.MinimumFollowingHeightNiet-negatieve hoogte die na een laatst opgelost fragment voor de volgende component wordt gereserveerd

Plaatsingsresultaat

PageNumber, CompositionIndexVastgelegde pagina en geslaagd samenstellingsnummer beginnend bij 1
SourceWidth, SourceHeightNatuurlijke gebruikte rechthoek die de component vóór plaatsing teruggeeft
Left, Top, Width, HeightLaatste getransformeerde gebruikte rechthoek vóór het knippen van de bestemming
SlotLeft, SlotTop, SlotWidth, SlotHeightOorspronkelijke bestemmingsregio
TransformLogische affiene matrix van componentlokale coördinaten naar uiteindelijke documentcoördinaten van boven naar beneden
WasClippedTrue wanneer knippen een deel van de getransformeerde gebruikte rechthoek verbergt
WasScaledTrue wanneer de proportionele schaal kleiner dan 1 is

Opmerkingen

dopReject behoudt de doelpagina en de vastgelegde componentstatus wanneer de natuurlijke gebruikte rechthoek een van de sleufafmetingen overschrijdt

dopClip behoudt de natuurlijke schaal en gebruikt een gebalanceerd graphics-state-clippingbereik rond de Form XObject-aanroep

dopScaleDown kiest Min(1, SlotWidth / SourceWidth, SlotHeight / SourceHeight) en behoudt de beeldverhouding van de component

Schalen vergroot nooit inhoud die al past

ContentWidth en behoudt de beeldverhouding van de component Schalen vergroot content die al past nooit Het Form XObject-canvas volgt ContentHeight en

De contentstream van de pagina wordt eigenaar van de geplaatste Form XObject-verwijzing voordat de tijdelijke capture-handle wordt vrijgegeven

Een slot kleiner dan MinimumSlotHeight geeft retry terug zonder de component te klonen, zijn callback aan te roepen of een tijdelijke pagina te maken

MinimumFollowingHeight beperkt tussenliggende fragmenten niet en wordt alleen gecontroleerd wanneer HasMoreContent false is

Een flow-space-herhaling geeft een lege plaatsing terug, behoudt alle eerder vastgelegde fragmenten en legt zijn reden en vereiste hoogte bloot via LastRetryReason en LastRequiredSlotHeight

Voorbeeld

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;

Retourwaarden

PDF_DYNAMIC_COMPONENT_ERRORValidatie van invoer, callback, geometrie, overflow of plaatsing is mislukt zonder toestand vast te leggen
PDF_DYNAMIC_COMPONENT_MOREHet fragment is vastgelegd en er resteert meer inhoud
PDF_DYNAMIC_COMPONENT_COMPLETEHet fragment heeft de sessie voltooid of de sessie was al voltooid
PDF_DYNAMIC_COMPONENT_RETRYEen paginerings- of flow-spacebeleid heeft de niet-vastgelegde proef naar een ander vak uitgesteld

Zie ook

TPDFlibDynamicComponentSession, BeginFormXObject, ReleaseCapturedPage, DrawCapturedPage