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.OverflowPolicy | dopReject, dopClip или dopScaleDown |
Options.HorizontalAlignment | dhaLeft, dhaCenter или dhaRight |
Options.VerticalAlignment | dvaTop, dvaCenter или dvaBottom |
Options.PaginationPolicy | Нормално разделяне, еднократен резервен вариант за задържане заедно или строго пълно поставяне |
Options.MinimumSlotHeight | Ненегативна височина на слота, изисквана преди старта на клонирането и композицията на компонента |
Options.MinimumFollowingHeight | Ненегативна височина, запазена след последен разрешен фрагмент за следващия компонент |
Резултат от поставянето
PageNumber, CompositionIndex | Приета страница и успешен номер на композиция, броен от 1 |
|---|---|
SourceWidth, SourceHeight | Естествен използван правоъгълник, върнат от компонента преди поставянето |
Left, Top, Width, Height | Окончателен преобразуван използван правоъгълник преди отсичането на целта |
SlotLeft, SlotTop, SlotWidth, SlotHeight | Оригиналната целева област |
Transform | Логическа афинна матрица от локалните координати на компонента към окончателните координати на документа отгоре надолу |
WasClipped | True, когато отсичането скрива част от преобразувания използван правоъгълник |
WasScaled | True, когато пропорционалният мащаб е по-малък от 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