Overrides de propriétés rich text XFA

Le flattening natif des draws exData résout les attributs de police et de paragraphe pour l'occurrence de dataset courante, y compris les overrides créés par des événements JavaScript généraux ou 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";

Résolution de police et de paragraphe

Typeface, size, weight, posture, underline et couleur de remplissage de police initialisent le style de run du rich text à partir des attributs effectifs d'instance et des défauts de schéma pris en charge

Le callback de mesure de texte reçoit le typeface, la taille et les drapeaux bold et italic effectifs, de sorte que la mesure et les styles de run émis utilisent les mêmes valeurs d'instance

Le producteur PDF Windows résout de façon cohérente les familles logiques Courier, Helvetica et Times vers Courier New, Arial et Times New Roman pendant la mesure et la sortie de dessin, préservant la famille visée quand Windows n'expose pas le nom logique comme face installée

Les propriétés de paragraphe hAlign, marginLeft, marginRight, textIndent, spaceAbove, spaceBelow et lineHeight affectent le placement des runs ; lineHeight ne peut pas réduire le pas de ligne sous la hauteur exigée par son texte

Le CSS inline reconnu fait un override des valeurs héritées de police ou de paragraphe ; une déclaration qui ne change qu'une marge de paragraphe préserve l'autre marge héritée

Les runs inline partagent une même baseline de texte entre tailles de police différentes, et l'espacement de paragraphes adjacents utilise le maximum du spaceBelow précédent et du spaceAbove suivant ; voir Géométrie des paragraphes rich text

Contenu inline et persistance

Les attributs style et href effectifs sur les nœuds de propriété XHTML déclarés participent au traitement du rich text, et les overrides effectifs de texte scalaire remplacent le contenu de feuille correspondant

Créer un override d'attribut conserve le contenu scalaire de template du nœud au lieu d'effacer son texte ; une valeur scalaire vide explicite omet le run de feuille tout en préservant le contenu environnant

Les nœuds de formulaire hérités à attribut seul continuent d'hériter du texte de template ; un nœud de contenu CDATA vide explicite préserve la distinction entre un clear scalaire et un corps omis après sérialisation

Les overrides persistent dans le paquet de formulaire natif, restent indépendants entre occurrences répétées et survivent à la sauvegarde et au rechargement XDP ; les événements échoués restaurent exactement le document natif antérieur

Couverture

Ce comportement s'applique au pipeline de wrapping du rich text et à ses déclarations CSS reconnues ; les propriétés CSS supplémentaires, l'édition complète du rich text des widgets et la création implicite des nœuds de propriété absents restent des cibles séparées

L'activation du soulignement de police utilise le renderer de run courant ; la géométrie complète double-ligne et les décorations text-decoration supplémentaires restent des cibles de rendering séparées

API associées

Property DOM XFA natif, Défauts de schéma, HPDFXFAResolveFormInstanceProperty et ApplyXFAAsAcroForm