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