Overrides de propriedades de Rich Text XFA

O achatamento nativo de draws exData resolve atributos de tipos de letra e de parágrafos para a ocorrência atual do dataset, incluindo overrides criados por eventos gerais JavaScript ou FormCalc

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

Resolução de tipos de letra e parágrafos

Typeface, tamanho, peso, postura, underline e cor de preenchimento de tipos de letra inicializam o estilo de runs de rich text a partir de atributos efetivos de instâncias e defaults suportados de schemas

O callback de medição de texto recebe o typeface, o tamanho e as flags efetivos de bold e italic, para que a medição e os estilos emitidos de runs usem os mesmos valores de instâncias

O produtor PDF de Windows resolve famílias lógicas Courier, Helvetica e Times para Courier New, Arial e Times New Roman de forma consistente durante a medição e a saída de draws, preservando a família pretendida quando Windows não expõe o nome lógico como face instalada

Parágrafos hAlign, marginLeft, marginRight, textIndent, spaceAbove, spaceBelow e lineHeight afetam o posicionamento de runs; lineHeight não pode reduzir o passo de linhas abaixo da altura exigida pelo texto dele

CSS inline reconhecido sobrepõe-se a valores herdados de tipos de letra ou de parágrafos; uma declaração que altere apenas uma margem de parágrafos preserva a outra margem herdada

Runs inline partilham uma linha de base de texto comum através de tamanhos de tipos de letra diferentes, e o espaçamento entre parágrafos adjacentes usa o máximo entre o spaceBelow precedente e o spaceAbove seguinte; veja a geometria de parágrafos de Rich Text

Conteúdo inline e persistência

Atributos efetivos de estilos e de hrefs em nós declarados de propriedades XHTML participam no processamento de rich text, e overrides efetivos de textos escalares substituem o conteúdo correspondente de folhas

Criar um override de atributos retém o conteúdo escalar de template desse nó em vez de apagar o texto dele; um valor escalar explicitamente vazio omite o run da folha preservando o conteúdo envolvente

Nós legados de formulários apenas de atributos continuam a herdar texto de templates; um nó de conteúdo CDATA explicitamente vazio preserva a distinção entre uma limpeza escalar e um corpo omitido após a serialização

Overrides persistem no pacote nativo de formulários, permanecem independentes através de ocorrências repetidas e sobrevivem a gravação e recarregamento de XDP; eventos falhados restauram o documento nativo anterior exato

Cobertura

Este comportamento aplica-se à pipeline de wrap de rich text e às declarações CSS reconhecidas dela; propriedades CSS adicionais, edição completa de rich text de widgets e criação implícita de nós de propriedades ausentes continuam como alvos separados

A ativação de underline de tipos de letra usa o renderer atual de runs; geometria completa de linhas duplas e de decorações de texto adicionais permanecem alvos separados de renderização

APIs relacionadas

Property DOM nativo XFA, Defaults de schemas, HPDFXFAResolveFormInstanceProperty e ApplyXFAAsAcroForm