ComposeNextLayout

Оформление на страницата, странициране, Form XObjects

Описание

Композира един динамичен фрагмент със състояние върху платно с естествен размер, прилага политиките за препълване, подравняване, странициране и поточно пространство и докладва окончателното преобразуване на поставянето

Синтаксис

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

Параметри

PageСъществуващ номер на целева страница, броен от 1
SlotLeft, SlotTopПозиция на целевия слот горе вляво в текущите единици на документа
SlotWidth, SlotHeightКраен положителен размер на целевия слот
Options.ContentWidth, Options.ContentHeightКрайно положително естествено платно, подавано на компонента чрез AvailableWidth и AvailableHeight
Options.OverflowPolicydopReject, dopClip или dopScaleDown
Options.HorizontalAlignmentdhaLeft, dhaCenter или dhaRight
Options.VerticalAlignmentdvaTop, dvaCenter или dvaBottom
Options.PaginationPolicyНормално разделяне, еднократен резервен вариант за задържане заедно или строго пълно поставяне
Options.MinimumSlotHeightНенегативна височина на слота, изисквана преди старта на клонирането и композицията на компонента
Options.MinimumFollowingHeightНенегативна височина, запазена след последен разрешен фрагмент за следващия компонент

Резултат от поставянето

PageNumber, CompositionIndexПриета страница и успешен номер на композиция, броен от 1
SourceWidth, SourceHeightЕстествен използван правоъгълник, върнат от компонента преди поставянето
Left, Top, Width, HeightОкончателен преобразуван използван правоъгълник преди отсичането на целта
SlotLeft, SlotTop, SlotWidth, SlotHeightОригиналната целева област
TransformЛогическа афинна матрица от локалните координати на компонента към окончателните координати на документа отгоре надолу
WasClippedTrue, когато отсичането скрива част от преобразувания използван правоъгълник
WasScaledTrue, когато пропорционалният мащаб е по-малък от 1

Забележки

dopReject запазва целевата страница и приетото състояние на компонента, когато естественият използван правоъгълник надвишава която и да е размерност на слота

dopClip

dopScaleDown запазва естествения мащаб и използва балансиран отсичащ обхват на графичното състояние около извикването на Form XObject Min(1, SlotWidth / SourceWidth, SlotHeight / SourceHeight) избира

ContentWidth и запазва съотношението на страните на компонента Мащабирането никога не уголемява съдържание, което вече се събира Платното на Form XObject следва ContentHeight и

MinimumSlotHeight

MinimumFollowingHeight, докато подравняването използва докладвания от компонента използван правоъгълник, закотвен в локална координата нула Съдържателният поток на страницата притежава поставената препратка към Form XObject, преди временният дескриптор на улавянето да бъде освободен Слот, по-къс от HasMoreContent, връща повторен опит без да клонира компонента, да извиква обратното му извикване или да създава временна страница

LastRetryReason не ограничава междинните фрагменти и се проверява само когато LastRequiredSlotHeight е false Повторен опит в пространството на потока връща празно разположение, запазва всички вече приложени фрагменти и предоставя причината и необходимата височина чрез

Пример

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;

Връщани стойности

PDF_DYNAMIC_COMPONENT_ERRORВалидацията на входа, callback, геометрия, препълване или разположение се провали, без да се приложи състояние
PDF_DYNAMIC_COMPONENT_MOREФрагментът е приложен и остава още съдържание
PDF_DYNAMIC_COMPONENT_COMPLETEФрагментът завърши сесията или сесията вече беше завършена
PDF_DYNAMIC_COMPONENT_RETRYПолитиката за страниране или за пространството на потока отложи неприложения опит за друг слот

Виж също

TPDFlibDynamicComponentSession, BeginFormXObject, ReleaseCapturedPage, DrawCapturedPage