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