ComposeNextLayout
Sidlayout, sidbrytning, Form XObjects
Beskrivning
Komponerar ett tillståndsbärande dynamiskt fragment på en naturlig rityta, tillämpar principer för överskott, justering, sidbrytning och flödesutrymme och rapporterar den slutliga placeringstransformeringen
Syntax
Function TPDFlibDynamicComponentSession.ComposeNextLayout(
Page: Integer; SlotLeft, SlotTop, SlotWidth, SlotHeight: Double;
Const Options: TPDFlibDynamicLayoutOptions;
Out Placement: TPDFlibDynamicPagePlacement): Integer;
Parametrar
Page | Befintligt ettbaserat målsidnummer |
|---|---|
SlotLeft, SlotTop | Övre vänstra målplatsposition i aktuella dokumentenheter |
SlotWidth, SlotHeight | Ändlig positiv storlek på målplatsen |
Options.ContentWidth, Options.ContentHeight | Ändlig positiv naturlig rityta som skickas till komponenten via AvailableWidth och AvailableHeight |
Options.OverflowPolicy | dopReject, dopClip eller dopScaleDown |
Options.HorizontalAlignment | dhaLeft, dhaCenter eller dhaRight |
Options.VerticalAlignment | dvaTop, dvaCenter eller dvaBottom |
Options.PaginationPolicy | Normal delning, engångs-reservedelning eller strikt komplett placering |
Options.MinimumSlotHeight | Icke-negativ platshöjd som krävs innan komponentkloning och komposition påbörjas |
Options.MinimumFollowingHeight | Icke-negativ höjd som reserveras efter ett slutligt löst fragment för nästa komponent |
Placeringsresultat
PageNumber, CompositionIndex | Bekräftad sida och ettbaserat lyckat kompositionsnr |
|---|---|
SourceWidth, SourceHeight | Naturlig använd rektangel som komponenten returnerade före placering |
Left, Top, Width, Height | Slutlig transformerad använd rektangel före målklippning |
SlotLeft, SlotTop, SlotWidth, SlotHeight | Ursprunglig målregion |
Transform | Logisk affin matris från komponentlokala koordinater till slutliga topp-ned-dokumentkoordinater |
WasClipped | True när klippning döljer en del av den transformerade använda rektangeln |
WasScaled | True när den proportionella skalningen är mindre än 1 |
Anmärkningar
dopReject bevarar målsidan och komponentens bekräftade tillstånd när den naturliga använda rektangeln överskrider någon av platsens dimensioner
dopClip
dopScaleDown bevarar den naturliga skalan och använder ett balanserat klippningsomfång i grafiktillståndet runt Form XObject-anropet
Skalning förstorar aldrig innehåll som redan ryms
ContentWidthMin(1, SlotWidth / SourceWidth, SlotHeight / SourceHeight) väljering förstorar aldrig innehåll som redan rymms
Form XObject-rytan följer ContentHeight och
Sidans innehållsström äger den placerade Form XObject-referensen innan det tillfälliga insamlingshandlet släpps
MinimumSlotHeight
MinimumFollowingHeight, medan justeringen använder den rektangel komponenten rapporterat som använd, förankrad vid lokal koordinat noll
Sidans innehållsström äger den placerade Form XObject-referensen innan det tillfälliga inspärningshandtaget släpps
En plats som är kortare än HasMoreContent returnerar återförsök utan att klona komponenten, anropa dess callback eller skapa en tillfällig sida
LastRetryReason begränsar inte mellanliggande fragment och kontrolleras bara när LastRequiredSlotHeight är false
Ett återförsök i flödesutrymmet returnerar en tom placering, bevarar alla tidigare bekräftade fragment och exponerar sin orsak och den nödvändiga höjden via
Exempel
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ärden
PDF_DYNAMIC_COMPONENT_ERROR | Indata, callback, geometri, spill eller placeringsvalidering misslyckades utan att något tillstånd bekräftades |
|---|---|
PDF_DYNAMIC_COMPONENT_MORE | Fragmentet bekräftades och mer innehåll återstår |
PDF_DYNAMIC_COMPONENT_COMPLETE | Fragmentet slutförde sessionen, eller så var sessionen redan slutförd |
PDF_DYNAMIC_COMPONENT_RETRY | Sidbrytnings- eller flödesutrymmesprincipen sköt det obekräftade försöket vidare till en annan plats |
Se även
TPDFlibDynamicComponentSession, BeginFormXObject, ReleaseCapturedPage, DrawCapturedPage