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
Page | Bestaand doelpaginanummer beginnend bij 1 |
|---|---|
SlotLeft, SlotTop | Bestemmingsleufpositie linksboven in de huidige documenteenheden |
SlotWidth, SlotHeight | Eindige positieve bestemmingsleufgrootte |
Options.ContentWidth, Options.ContentHeight | Eindig positief natuurlijk canvas dat via AvailableWidth en AvailableHeight aan de component wordt doorgegeven |
Options.OverflowPolicy | dopReject, dopClip of dopScaleDown |
Options.HorizontalAlignment | dhaLeft, dhaCenter of dhaRight |
Options.VerticalAlignment | dvaTop, dvaCenter of dvaBottom |
Options.PaginationPolicy | Normaal splitsen, eenmalige keep-together-terugval of strikte volledige plaatsing |
Options.MinimumSlotHeight | Niet-negatieve sleufhoogte die vereist is voordat componentklonering en samenstelling beginnen |
Options.MinimumFollowingHeight | Niet-negatieve hoogte die na een laatst opgelost fragment voor de volgende component wordt gereserveerd |
Plaatsingsresultaat
PageNumber, CompositionIndex | Vastgelegde pagina en geslaagd samenstellingsnummer beginnend bij 1 |
|---|---|
SourceWidth, SourceHeight | Natuurlijke gebruikte rechthoek die de component vóór plaatsing teruggeeft |
Left, Top, Width, Height | Laatste getransformeerde gebruikte rechthoek vóór het knippen van de bestemming |
SlotLeft, SlotTop, SlotWidth, SlotHeight | Oorspronkelijke bestemmingsregio |
Transform | Logische affiene matrix van componentlokale coördinaten naar uiteindelijke documentcoördinaten van boven naar beneden |
WasClipped | True wanneer knippen een deel van de getransformeerde gebruikte rechthoek verbergt |
WasScaled | True 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_ERROR | Validatie van invoer, callback, geometrie, overflow of plaatsing is mislukt zonder toestand vast te leggen |
|---|---|
PDF_DYNAMIC_COMPONENT_MORE | Het fragment is vastgelegd en er resteert meer inhoud |
PDF_DYNAMIC_COMPONENT_COMPLETE | Het fragment heeft de sessie voltooid of de sessie was al voltooid |
PDF_DYNAMIC_COMPONENT_RETRY | Een paginerings- of flow-spacebeleid heeft de niet-vastgelegde proef naar een ander vak uitgesteld |
Zie ook
TPDFlibDynamicComponentSession, BeginFormXObject, ReleaseCapturedPage, DrawCapturedPage