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