Ajuste de línea de rich text en XFA

El pipeline de dibujo de rich text acomoda el texto de párrafos XHTML en líneas consecutivas usando el ancho de dibujo, los márgenes efectivos del párrafo y el textIndent de primera línea

Las palabras se mueven juntas cuando sus fragmentos con estilo caben en una línea completa, incluidas las palabras que cruzan elementos span adyacentes sin un espacio de por medio; las palabras más anchas que una línea se dividen en prefijos medidos, y los surrogate pairs UTF-16 permanecen intactos

Los espacios XHTML normales, los tabs y los fin de línea del fuente colapsan a un solo espacio entre palabras, y los espacios al inicio o al final de una línea se omiten; un elemento br fuerza un salto de línea y los saltos consecutivos conservan las líneas intermedias vacías

Cada línea calcula su propio alineamiento centrado o a la derecha y su baseline común; las líneas justificadas reparten el ancho sobrante entre los espacios reales entre palabras después de un soft wrap, mientras que la última línea y las terminadas en br conservan su espaciado natural

El para.lineHeight nativo efectivo se aplica a cada línea y no puede reducir el paso de línea por debajo de la altura del texto; el espaciado entre párrafos adyacentes se aplica una sola vez alrededor del párrafo completo

Las sobrescrituras de fuente y color inline sobreviven a la fragmentación de líneas, y los estilos anidados dentro de un hyperlink siguen vigentes; cada fragmento de hyperlink posicionado conserva su destino y crea su propio rectángulo de enlace PDF nativo

HPDFXFAFlatten usa el TXFAMeasureTextFunc proporcionado para el ajuste, con sondas de prefijo acotadas para palabras demasiado anchas; cuando no se pasa un medidor, su fallback usa un avance de medio em por escalar Unicode

THotPDF.ApplyXFAAsAcroForm usa el medidor de fuentes nativo y conserva los cambios en runtime a través de guardado y recarga de XDP, incluidas las sobrescrituras independientes de texto, color y párrafo en instancias repetidas

El line breaker actual usa límites de palabra por espacios en blanco y división de emergencia segura por escalares; las reglas completas de Unicode line-break y grapheme clusters, los modos adicionales de CSS white-space, la edición completa de rich text en widgets y la geometría de decoraciones restantes siguen siendo objetivos separados

Geometría de párrafos, Sobrescrituras de propiedades de rich text y ApplyXFAAsAcroForm