Overrides de propiedades de rich text en XFA

El flattening nativo de draws exData resuelve los atributos de fuente y párrafo para la ocurrencia del dataset actual, incluidos los overrides creados por eventos generales de JavaScript o FormCalc

const label = xfa.resolveNode("main.row[1].label");
label.font.typeface = "Helvetica";
label.font.size = "18pt";
label.font.weight = "bold";
label.font.posture = "italic";
label.font.underline = "1";
label.font.fill.color.value = "0,128,255";
label.para.hAlign = "right";
label.para.spaceAbove = "3pt";
label.para.lineHeight = "30pt";

const span = label.value.exData.body.p.span;
span.setAttribute("color:#FFFF00", "style");
span.value = "Updated text";

Resolución de fuente y párrafo

El typeface, el tamaño, el weight, la postura, el subrayado y el color de relleno de la fuente inicializan el estilo de run del rich text a partir de los atributos efectivos de la instancia y los defaults de schema soportados

El callback de medición de texto recibe el typeface efectivo, el tamaño y los flags bold e italic, de modo que la medición y los estilos de run emitidos usan los mismos valores de la instancia

El productor PDF de Windows resuelve las familias lógicas Courier, Helvetica y Times a Courier New, Arial y Times New Roman de forma consistente durante la medición y la salida de draw, preservando la familia deseada cuando Windows no expone el nombre lógico como una cara instalada

Los valores hAlign, marginLeft, marginRight, textIndent, spaceAbove, spaceBelow y lineHeight del párrafo afectan la ubicación del run; lineHeight no puede reducir el paso de línea por debajo de la altura que exige su texto

El CSS en línea reconocido hace override de los valores heredados de fuente o párrafo; una declaración que cambia solo un margen del párrafo preserva el otro margen heredado

Los runs en línea comparten una baseline de texto común entre tamaños de fuente distintos, y el espaciado entre párrafos adyacentes usa el máximo entre el spaceBelow precedente y el spaceAbove siguiente; ver Geometría de párrafos de rich text

Contenido en línea y persistencia

Los atributos style y href efectivos en los nodos de propiedad XHTML declarados participan en el procesamiento de rich text, y los overrides efectivos de texto escalar reemplazan el contenido de hoja correspondiente

Crear un override de atributo conserva el contenido escalar de template de ese nodo en lugar de borrar su texto; un valor escalar vacío explícito omite el run de hoja mientras preserva el contenido circundante

Los nodos de formulario heredados de solo atributos siguen heredando el texto de template; un nodo de contenido CDATA vacío explícito preserva la distinción entre un borrado escalar y un body omitido tras la serialización

Los overrides persisten en el form packet nativo, permanecen independientes entre ocurrencias repetidas y sobreviven al guardado y recarga del XDP; los eventos fallidos restauran el documento nativo previo exacto

Cobertura

Este comportamiento aplica al pipeline de wrapping de rich text y sus declaraciones CSS reconocidas; las propiedades CSS adicionales, la edición completa de rich text del widget y la creación implícita de nodos de propiedad ausentes siguen siendo objetivos separados

La activación del subrayado de fuente usa el run renderer actual; la geometría completa de doble línea y el text-decoration adicional siguen siendo objetivos de rendering separados

APIs relacionadas

Property DOM nativo de XFA, Defaults de schema, HPDFXFAResolveFormInstanceProperty y ApplyXFAAsAcroForm