Ajuste de línea de texto enriquecido XFA

El pipeline de dibujo de texto enriquecido distribuye 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 abarcan elementos span adyacentes sin un espacio intermedio; las palabras más anchas que una línea se dividen en prefijos medidos, y los pares surrogate UTF-16 permanecen intactos

Los espacios XHTML normales, los tabuladores y los finales de línea del origen se colapsan en un solo espacio entre palabras, y los espacios al principio 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 propia alineación centrada o a la derecha y su línea base común; las líneas justificadas distribuyen el ancho sobrante entre los espacios reales de palabra tras un soft wrap, mientras que la última línea y las terminadas por br conservan su espaciado natural

El para.lineHeight nativo efectivo se aplica a todas las líneas 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 anulaciones de fuente y color en línea sobreviven a la fragmentación de líneas, y los estilos anidados dentro de un hyperlink siguen siendo efectivos; cada fragmento de hyperlink posicionado conserva su destino y crea su propio rectángulo de enlace PDF nativo

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

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

El line breaker actual usa fronteras de palabra basadas en espacios en blanco y división de emergencia segura a nivel de escalar; las reglas completas de line-break Unicode y de clusters de grafemas, los modos adicionales de white-space CSS, la edición completa de texto enriquecido en widgets y la geometría de decoración restante continúan como objetivos separados

Geometría de párrafos, Anulaciones de propiedades de texto enriquecido y ApplyXFAAsAcroForm