Property-overrides för XFA rich text

Nativ tillplattning av exData-dokument löser typsnitts- och styckeattribut för den aktuella datasetförekomsten, inklusive overrides skapade av allmänna JavaScript- eller FormCalc-händelser

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";

Upplösning av typsnitt och stycke

Typeface, size, weight, posture, underline och typsnittets fyllningsfärg initierar run-stilen utifrån effektiva instansattribut och schemastandardvärden som stöds

Callbacken för textmätning tar emot effektiv typeface, storlek samt flaggorna bold och italic, så att mätning och genererade run-stilar använder samma instansvärden

Windows-PDF-producenten löser de logiska familjerna Courier, Helvetica och Times konsekvent till Courier New, Arial och Times New Roman under mätning och ritatekning, vilket behåller den avsedda familjen när Windows inte exponerar det logiska namnet som ett installerat typsnitt

Styckets hAlign, marginLeft, marginRight, textIndent, spaceAbove, spaceBelow och lineHeight påverkar run-placeringen; lineHeight kan inte minska radsteget under den höjd som texten kräver

Erkända inline-CSS-overrides ersätter ärvda typsnitts- eller styckevärden; en deklaration som bara ändrar en styckemarginal bevarar den ärvda marginalen

Inline-runs delar en gemensam textbaslinje över olika teckenstorlekar, och avståndet mellan angränsande stycken använder maximum av föregående spaceBelow och följande spaceAbove; se Styckegeometri för rich text

Inline-innehåll och persistens

Effektiva style- och href-attribut på deklarerade XHTML-egenskapsnoder deltar i rich-text-bearbetningen, och effektiva skalära textoverrides ersätter motsvarande lövinnehåll

Att skapa en attributoverride behåller nodens mallskalärinnehåll i stället för att radera dess text; ett explicit tomt skalärt värde utelämnar lövrun:en och bevarar omgivande innehåll

Äldre formulärnoder med enbart attribut ärver fortsatt malltext; en explicit tom CDATA-innehållsnod bevarar skillnaden mellan en skalär rensning och en utelämnad body efter serialisering

Overriderna sparas i den nativa formulärpaktenen, förblir oberoende mellan upprepade förekomster och överlever XDP-sparning och omladdning; misslyckade händelser återställer exakt det tidigare nativa dokumentet

Täckning

Detta beteende gäller wrapping-pipelinen för rich text och dess erkända CSS-deklarationer; ytterligare CSS-egenskaper, fullständig redigering av widgetrich text samt implicit skapande av saknade egenskapsnoder fortsätter som separata mål

Aktivering av typsnittsunderline använder den aktuella run-renderern; fullständig dubbel linje och ytterligare geometri för text-dekorationsgeometri återstår som separata renderingsmål

Relaterade API:er

Property-DOM i native XFA, Schemastandardvärden, HPDFXFAResolveFormInstanceProperty och ApplyXFAAsAcroForm