Compose

Diseño de página, paginación, Form XObjects

Descripción

Método abstracto de TPDFlibDynamicComponent que dibuja un fragmento del componente en coordenadas locales e informa sus límites usados y su estado de continuación

Sintaxis

Function TPDFlibDynamicComponent.Compose(
  Const Context: TPDFlibDynamicPageContext;
  Out ComposeResult: TPDFlibDynamicPageResult): Integer;
  Virtual; Abstract;

Parámetros

Context.LibraryInstanceInstancia de TPDFlib adjunta a través de la cual el fragmento debe dibujar
Context.PageNumberNúmero de la página de destino, aunque la biblioteca seleccione una página temporal aislada mientras se ejecuta el callback
Context.CompositionIndexNúmero con base 1 que el fragmento recibe al confirmarse
Context.DestinationLeft, Context.DestinationTopPosición del espacio de destino pasada desde la llamada de composición
Context.AvailableWidth, Context.AvailableHeightTamaño del lienzo natural del Form XObject circundante

Registro de resultados

HasContentTrue cuando el fragmento dibujó contenido visible
HasMoreContentTrue cuando el componente puede producir otro fragmento
UsedWidth, UsedHeightRectángulo usado que comienza en la coordenada local cero y debe delimitar todo el contenido visible del componente

Observaciones

Los resultados con contenido requieren valores UsedWidth y UsedHeight finitos y positivos dentro de AvailableWidth y AvailableHeight Un resultado sin contenido solo es válido cuando

Un resultado sin contenido es válido solo cuando HasMoreContent es False y ambas dimensiones usadas son cero

El callback puede usar las API de dibujo y de contenido pero no debe cambiar documentos, páginas ni contenedores de dibujo anidados

La sesión valida ComposeResult mediante ValidComposeResult antes de tomar cualquier decisión de colocación

Devolver cero rechaza el intento sin confirmar el estado del componente ni del destino; las excepciones lanzadas se propagan después de que la sesión haya limpiado el estado temporal

Valores devueltos

1El resultado del fragmento se ofrece para validación y colocación
0El intento se rechaza y no cambia el estado del componente ni del destino

Véase también

TPDFlibDynamicComponent, TPDFlibDynamicPageContext, TPDFlibDynamicPageResult, ValidComposeResult, ComposeNextLayout, CloneComponent