ComposeNextLayout
Sideoppsett, paginering, Form XObjects
Beskrivelse
Samensetter ett tilstandsfylt dynamisk fragment på et lerret i naturlig størrelse, anvender overflyt-, justerings-, paginerings- og flytplassregler og rapporterer den endelige plasseringstransformasjonen
Syntaks
Function TPDFlibDynamicComponentSession.ComposeNextLayout(
Page: Integer; SlotLeft, SlotTop, SlotWidth, SlotHeight: Double;
Const Options: TPDFlibDynamicLayoutOptions;
Out Placement: TPDFlibDynamicPagePlacement): Integer;
Parametre
Page | Eksisterende 1-basert målsidenummer |
|---|---|
SlotLeft, SlotTop | Øvre venstre målplassposisjon i gjeldende dokumentenheter |
SlotWidth, SlotHeight | Endelig positiv målplassstørrelse |
Options.ContentWidth, Options.ContentHeight | Endelig positivt naturlig lerret sendt til komponenten gjennom AvailableWidth og AvailableHeight |
Options.OverflowPolicy | dopReject, dopClip eller dopScaleDown |
Options.HorizontalAlignment | dhaLeft, dhaCenter eller dhaRight |
Options.VerticalAlignment | dvaTop, dvaCenter eller dvaBottom |
Options.PaginationPolicy | Normal splitting, engangs hold-sammen-fallback eller streng fullstendig plassering |
Options.MinimumSlotHeight | Ikke-negativ plasshøyde som kreves før komponentkloning og sammensetning starter |
Options.MinimumFollowingHeight | Ikke-negativ høyde reservert etter et siste løste fragment for neste komponent |
Plasseringsresultat
PageNumber, CompositionIndex | Utført side og 1-basert vellykket sammensetningsnummer |
|---|---|
SourceWidth, SourceHeight | Naturlig brukt rektangel returnert av komponenten før plassering |
Left, Top, Width, Height | Endelig transformert brukt rektangel før målklipping |
SlotLeft, SlotTop, SlotWidth, SlotHeight | Opprinnelig målområde |
Transform | Logisk affin matrise fra komponentlokale koordinater til endelige topp-ned-dokumentkoordinater |
WasClipped | True når klipping skjuler del av det transformerte brukte rektangelet |
WasScaled | True når proporsjonal skalering er mindre enn 1 |
Merknader
dopReject bevarer målsiden og tilstanden til commitet komponent når det naturlige brukte rektangelet overstiger en av plassdimensjonene
dopClip bevarer naturlig skala og bruker et balansert omfang for grafikktilstand-klipping rundt Form XObject-invokasjonen
dopScaleDown velger Min(1, SlotWidth / SourceWidth, SlotHeight / SourceHeight) og bevarer komponentens sideforhold
Skalering forstørrer aldri innhold som allerede passerer
Form XObject-canvaset følger ContentWidth og ContentHeight, mens justering bruker det komponentrapporterte brukte rektangelet forankret i lokal koordinat null
Sideinnholdsstrømmen eier den plasserte Form XObject-referansen før det midlertidige fangsthåndtaket frigis
En plass kortere enn MinimumSlotHeight returnerer nytt forsøk uten å klone komponenten, kalle callback-en eller opprette en midlertidig side
MinimumFollowingHeight begrenser ikke mellomliggende fragmenter og kontrolleres bare når HasMoreContent er usann
Et flytrom-forsøk returnerer en tom plassering, bevarer alle tidligere commitete fragmenter og eksponerer sin årsak og påkrevde høyde gjennom 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;
Returverdier
PDF_DYNAMIC_COMPONENT_ERROR | Validering av inndata, callback, geometri, overløp eller plassering mislyktes uten at noen tilstand ble tatt i bruk |
|---|---|
PDF_DYNAMIC_COMPONENT_MORE | Fragmentet ble tatt med, og mer innhold gjenstår |
PDF_DYNAMIC_COMPONENT_COMPLETE | Fragmentet fullførte økten, eller økten var allerede fullført |
PDF_DYNAMIC_COMPONENT_RETRY | Sideinndelings- eller flyteplassregelen utsatte forsøket, som ikke ble tatt med, til en annen plass |
Se også
TPDFlibDynamicComponentSession, BeginFormXObject, ReleaseCapturedPage, DrawCapturedPage