ComposeNextLayout
Sidelayout, paginering, Form XObjects
Beskrivelse
Komponerer ét statefuldt dynamisk fragment på et lærred i naturlig størrelse, anvender overløbs-, justerings-, paginerings- og flow-space-politik og rapporterer den endelige placeringstransformation
Syntaks
Function TPDFlibDynamicComponentSession.ComposeNextLayout(
Page: Integer; SlotLeft, SlotTop, SlotWidth, SlotHeight: Double;
Const Options: TPDFlibDynamicLayoutOptions;
Out Placement: TPDFlibDynamicPagePlacement): Integer;
Parametre
Page | Eksisterende etbaseret destinationssidenummer |
|---|---|
SlotLeft, SlotTop | Øverste venstre destinationsslotsposition i aktuelle dokumentenheder |
SlotWidth, SlotHeight | Endelig positiv destinationsslotsstørrelse |
Options.ContentWidth, Options.ContentHeight | Endelig positivt naturligt lærred sendt til komponenten gennem AvailableWidth og AvailableHeight |
Options.OverflowPolicy | dopReject, dopClip eller dopScaleDown |
Options.HorizontalAlignment | dhaLeft, dhaCenter eller dhaRight |
Options.VerticalAlignment | dvaTop, dvaCenter eller dvaBottom |
Options.PaginationPolicy | Normal opdeling, engangs keep-together-fallback eller streng fuldstændig placering |
Options.MinimumSlotHeight | Ikke-negativ slothøjde, der kræves, før komponentkloning og komposition starter |
Options.MinimumFollowingHeight | Ikke-negativ højde reserveret efter et endeligt opløst fragment til næste komponent |
Placeringsresultat
PageNumber, CompositionIndex | Bundet side og etbaseret vellykket kompositionnummer |
|---|---|
SourceWidth, SourceHeight | Naturligt brugt rektangel returneret af komponenten før placering |
Left, Top, Width, Height | Endeligt transformeret brugt rektangel før destinationsklipning |
SlotLeft, SlotTop, SlotWidth, SlotHeight | Oprindeligt destinationsområde |
Transform | Logisk affin matrix fra komponentlokale koordinater til endelige top-down-dokumentkoordinater |
WasClipped | True, når klipning skjuler en del af det transformerede brugte rektangel |
WasScaled | True, når proportional skalering er mindre end 1 |
Bemærkninger
dopReject bevarer destinationssiden og committet komponenttilstand, når det naturlige anvendte rektangel overstiger en af pladsdimensionerne
dopClip bevarer naturlig skala og bruger et afbalanceret grafiktilstands-klippeomfang omkring Form XObject-kaldet
dopScaleDown vælger Min(1, SlotWidth / SourceWidth, SlotHeight / SourceHeight) og bevarer komponentens sideforhold
Skalering forstørrer aldrig indhold, der allerede passer
Form XObject-lærredet følger ContentWidth og ContentHeight, mens justeringen bruger det af komponenten rapporterede anvendte rektangel forankret i lokal koordinat nul
Sidens indholdsstrøm ejer den placerede Form XObject-reference, før det midlertidige capture-handle frigives
En plads kortere end MinimumSlotHeight returnerer retry uden at klone komponenten, kalde dens callback eller oprette en midlertidig side
MinimumFollowingHeight begrænser ikke mellemfragmenter og kontrolleres kun, når HasMoreContent er false
En flow-space-gentagelse returnerer en tom placering, bevarer alle tidligere committede fragmenter og eksponerer sin årsag og krævede højde gennem LastRetryReason og LastRequiredSlotHeight
Eksempel
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;
Returværdier
PDF_DYNAMIC_COMPONENT_ERROR | Validering af input, callback, geometri, overløb eller placering mislykkedes uden at committe tilstand |
|---|---|
PDF_DYNAMIC_COMPONENT_MORE | Fragmentet blev committet, og der er stadig mere indhold |
PDF_DYNAMIC_COMPONENT_COMPLETE | Fragmentet fuldendte sessionen, eller sessionen var allerede fuldendt |
PDF_DYNAMIC_COMPONENT_RETRY | Paginerings- eller flow-space-politik udskød det ucommittede forsøg til en anden slot |
Se også
TPDFlibDynamicComponentSession, BeginFormXObject, ReleaseCapturedPage, DrawCapturedPage