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