XFA Rich Text Property Overrides
Beim nativen Flatten von exData-Zeichnungen werden Font- und Absatzattribute für die aktuelle Dataset-Occurrence aufgelöst, einschließlich Overrides, die durch allgemeine JavaScript- oder FormCalc-Events entstehen
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";
Font- und Absatzauflösung
Typeface, Größe, Weight, Posture, Underline und Font-Füllfarbe initialisieren den Rich-Text-Run-Stil aus den effektiven Instanzattributen und unterstützten Schema-Defaults
Der Textmessungs-Callback erhält die effektiven Werte für Typeface, Größe, Bold und Italic, sodass Messung und emittierte Run-Stile dieselben Instanzwerte verwenden
Der Windows-PDF-Producer löst die logischen Familien Courier, Helvetica und Times konsistent während Messung und Zeichenausgabe zu Courier New, Arial und Times New Roman auf und bewahrt die beabsichtigte Familie, wenn Windows den logischen Namen nicht als installierte Schriftart exponiert
Absatz-hAlign, marginLeft, marginRight, textIndent, spaceAbove, spaceBelow und lineHeight beeinflussen die Run-Platzierung; lineHeight kann den Zeilenabstand nicht unter die Höhe absenken, die der eigene Text erfordert
Erkannte Inline-CSS-Overrides überschreiben geerbte Font- oder Absatzwerte; eine Deklaration, die nur einen Absatzrand ändert, bewahrt den anderen geerbten Rand
Inline-Runs teilen sich eine gemeinsame Text-Grundlinie über verschiedene Schriftgrößen hinweg, und benachbarter Absatzabstand nutzt das Maximum aus vorherigem spaceBelow und folgendem spaceAbove; siehe Rich Text Paragraph Geometry
Inline-Inhalt und Persistenz
Effektive style- und href-Attribute auf deklarierten XHTML-Property-Knoten fließen in die Rich-Text-Verarbeitung ein, und effektive skalare Text-Overrides ersetzen den entsprechenden Leaf-Inhalt
Das Anlegen eines Attribut-Overrides behält den skalaren Template-Inhalt dieses Knotens, statt seinen Text zu löschen; ein explizit leerer Skalarwert lässt den Leaf-Run weg und bewahrt den umgebenden Inhalt
Ältere rein attributbasierte Formularknoten erben weiterhin Template-Text; ein explizit leerer CDATA-Inhaltsknoten bewahrt nach der Serialisierung die Unterscheidung zwischen einer skalaren Löschung und einem weggelassenen Body
Overrides persistieren im nativen Formularpaket, bleiben über wiederholte Occurrences hinweg unabhängig und überleben XDP-Speichern und -Neuladen; fehlgeschlagene Events stellen das exakte vorherige native Dokument wieder her
Abdeckung
Dieses Verhalten greift für die Rich-Text-Wrapping-Pipeline und ihre erkannten CSS-Deklarationen; weitere CSS-Properties, vollständiges Widget-Rich-Text-Editing und implizites Anlegen fehlender Property-Knoten bleiben separate Ziele
Die Font-Underline-Aktivierung nutzt den aktuellen Run-Renderer; vollständige Doppellinien- und weitere Textdekorations-Geometrie bleiben separate Rendering-Ziele
Verwandte APIs
Native XFA Property DOM, Schema Defaults, HPDFXFAResolveFormInstanceProperty und ApplyXFAAsAcroForm