ComposeNextLayout
Diseño de página, paginación, Form XObjects
Descripción
Compone un fragmento dinámico con estado en un lienzo de tamaño natural, aplica la política de desbordamiento, alineación, paginación y espacio de flujo, e informa la transformación final de colocación
Sintaxis
Function TPDFlibDynamicComponentSession.ComposeNextLayout(
Page: Integer; SlotLeft, SlotTop, SlotWidth, SlotHeight: Double;
Const Options: TPDFlibDynamicLayoutOptions;
Out Placement: TPDFlibDynamicPagePlacement): Integer;
Parámetros
Page | Número existente de la página de destino con base 1 |
|---|---|
SlotLeft, SlotTop | Posición del espacio de destino superior izquierda en las unidades actuales del documento |
SlotWidth, SlotHeight | Tamaño finito y positivo del espacio de destino |
Options.ContentWidth, Options.ContentHeight | Lienzo natural finito y positivo que se pasa al componente mediante AvailableWidth y AvailableHeight |
Options.OverflowPolicy | dopReject, dopClip o dopScaleDown |
Options.HorizontalAlignment | dhaLeft, dhaCenter o dhaRight |
Options.VerticalAlignment | dvaTop, dvaCenter o dvaBottom |
Options.PaginationPolicy | División normal, respaldo de mantener junto de una sola vez o colocación completa estricta |
Options.MinimumSlotHeight | Altura de espacio no negativa requerida antes de iniciar la clonación y composición del componente |
Options.MinimumFollowingHeight | Altura no negativa reservada después de un fragmento final resuelto para el siguiente componente |
Resultado de colocación
PageNumber, CompositionIndex | Página confirmada y número de composición exitosa con base 1 |
|---|---|
SourceWidth, SourceHeight | Rectángulo usado natural devuelto por el componente antes de la colocación |
Left, Top, Width, Height | Rectángulo usado transformado final antes del recorte del destino |
SlotLeft, SlotTop, SlotWidth, SlotHeight | Región de destino original |
Transform | Matriz afín lógica desde coordenadas locales del componente hasta las coordenadas finales del documento de arriba hacia abajo |
WasClipped | True cuando el recorte oculta parte del rectángulo usado transformado |
WasScaled | True cuando la escala proporcional es menor que 1 |
Observaciones
dopReject preserva la página de destino y el estado confirmado del componente cuando el rectángulo usado natural excede cualquiera de las dimensiones del espacio
dopClip
dopScaleDown sceglie Min(1, SlotWidth / SourceWidth, SlotHeight / SourceHeight) y conserva la relación de aspecto del componente
El escalado nunca amplía el contenido que ya cabe
La tela del Form XObject sigue ContentWidth y ContentHeight, mientras que la alineación usa el rectángulo usado notificado por el componente anclado en la coordenada local cero
El flujo de contenido de la página se apropia de la referencia del Form XObject colocado antes de que se libere el handle temporal de captura
Una ranura más corta que MinimumSlotHeight devuelve reintento sin clonar el componente, invocar su callback ni crear una página temporal
MinimumFollowingHeight, mientras que la alineación usa el rectángulo usado informado por el componente, anclado en la coordenada local cero
El flujo de contenido de la página toma posesión de la referencia del Form XObject colocado antes de que se libere el manejador de captura temporal
Un espacio más corto que HasMoreContent devuelve reintento sin clonar el componente, invocar su callback ni crear una página temporal
LastRetryReason no restringe los fragmentos intermedios y solo se comprueba cuando LastRequiredSlotHeight es false
Un reintento por espacio de flujo devuelve una colocación vacía, conserva todos los fragmentos confirmados previamente y expone su motivo y la altura requerida mediante
Ejemplo
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;
Valores devueltos
PDF_DYNAMIC_COMPONENT_ERROR | La validación de entrada, callback, geometría, desbordamiento o colocación falló sin confirmar el estado |
|---|---|
PDF_DYNAMIC_COMPONENT_MORE | El fragmento se confirmó y queda más contenido |
PDF_DYNAMIC_COMPONENT_COMPLETE | El fragmento completó la sesión o la sesión ya estaba completa |
PDF_DYNAMIC_COMPONENT_RETRY | La política de paginación o de espacio de flujo aplazó la prueba sin confirmar hacia otro espacio |
Véase también
TPDFlibDynamicComponentSession, BeginFormXObject, ReleaseCapturedPage, DrawCapturedPage