Overrides de propiedades 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
Typeface, size, weight, posture, underline y el color de relleno de la fuente inicializan el estilo del run de rich text a partir de los atributos de instancia efectivos y los valores por defecto del schema soportados
El callback de medición de texto recibe el typeface, el size y los flags bold e italic efectivos, de modo que la medición y los estilos de run emitidos usan los mismos valores de 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 dibujo, conservando la familia prevista cuando Windows no expone el nombre lógico como una cara instalada
Los atributos de párrafo hAlign, marginLeft, marginRight, textIndent, spaceAbove, spaceBelow y lineHeight afectan a la colocación del run; lineHeight no puede reducir el paso de línea por debajo de la altura que exige su texto
El CSS inline reconocido sobrescribe los valores heredados de fuente o párrafo; una declaración que cambia solo un margen del párrafo conserva el otro margen heredado
Los runs inline 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 inline 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 escalares de texto efectivos sustituyen el contenido hoja correspondiente
Crear un override de atributo conserva el contenido escalar de la plantilla de ese nodo en lugar de borrar su texto; un valor escalar vacío explícito omite el run hoja conservando el contenido circundante
Los nodos de formulario antiguos de solo atributos siguen heredando el texto de la plantilla; 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 paquete de formulario 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 se aplica al pipeline de wrapping de rich text y a 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 continúan como objetivos separados
La activación del underline de fuente usa el renderer de run actual; la geometría completa de doble línea y los text-decoration adicionales siguen siendo objetivos de rendering separados
APIs relacionadas
Property DOM nativo de XFA, Valores por defecto del schema, HPDFXFAResolveFormInstanceProperty y ApplyXFAAsAcroForm