XFA Rich Text Property Overrides
Nativní zploštění draw exData rozřeší atributy fontu i odstavce pro aktuální výskyt datasetu, tedy i override vytvořené obecnými JavaScript či FormCalc událostmi
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";
Rozřešení fontů a odstavců
Typeface, size, weight, posture, underline i barva font výplně inicializují styl rich text runu z efektivních instančních atributů i podporovaných schema defaultů
Callback měření textu dostane efektivní typeface, velikost i příznaky bold a italic, takže měření i emitované runové styly použijí tytéž instanční hodnoty
Windows PDF producent rozřeší logické rodiny Courier, Helvetica a Times konzistentně na Courier New, Arial a Times New Roman během měření i draw výstupu, se zachováním zamýšlené rodiny, když Windows neexponuje logický název jako instalovaný řez
Paragraph hAlign, marginLeft, marginRight, textIndent, spaceAbove, spaceBelow i lineHeight ovlivní umístění runů; lineHeight nemůže snížit krok řádku pod výšku vyžadovanou jeho textem
Rozpoznaný inline CSS přebije zděděné hodnoty fontu či odstavce; deklarace měnící jen jeden paragraph margin zachová druhý zděděný margin
Inline runy sdílejí společnou textovou baseline napříč různými velikostmi písem a sousední spacing odstavců použije maximum z spaceBelow předchozího a spaceAbove následujícího; viz Geometrie rich text odstavců
Inline obsah a perzistence
Efektivní atributy style i href na deklarovaných XHTML property uzlech se účastní zpracování rich textu a efektivní override skalárního textu nahradí odpovídající listový obsah
Vytvoření atributového override si uchová šablonový skalární obsah toho uzlu, místo aby smazal jeho text; explicitně prázdná skalární hodnota vynechá listový run, při zachování okolního obsahu
Legacy form uzly pouze s atributy dál dědí text šablony; explicitně prázdný uzel CDATA obsahu zachová po serializaci rozdíl mezi skalárním vymazáním a vynechaným tělem
Override perzistují v nativním form packetu, zůstávají nezávislé napříč opakovanými výskyty a přežijí uložení i reload XDP; neúspěšné události obnoví přesný předchozí nativní dokument
Pokrytí
Toto chování platí pro rich text wrapping pipeline a její rozpoznané CSS deklarace; další CSS vlastnosti, kompletní rich text editace widgetů i implicitní vytváření chybějících property uzlů zůstávají samostatnými cíli
Aktivace underline písma používá aktuální renderer runů; kompletní dvojité podtržení i další geometrie text-decoration zůstávají samostatnými rendering cíli
Související API
Nativní XFA Property DOM, Schema defaulty, HPDFXFAResolveFormInstanceProperty a ApplyXFAAsAcroForm