Criação nativa de propriedades ausentes no XFA

Unit: HPDFXFAEventScript, integrada por HPDFXFARuntime e HPDFXFA

Acesso por eventos

Nós de formulários JavaScript expõem getElement(className, occurrence=0); uma propriedade suportada ausente é criada com os defaults de schema, e o acesso repetido retorna o mesmo handle vivo de propriedade

Acesso direto a propriedades, como field.font ou draw.para, cria a ocorrência zero quando o filho suportado está ausente

const label = xfa.form.resolveNode("main.row[1].label");
const font = label.getElement("font", 0);
font.typeface = "Helvetica";
font.size = "18pt";
font.fill.color.value = "0,128,255";
label.para.hAlign = "right";
label.border.getElement("edge", 3).thickness = "0.25pt";

O argument de ocorrência precisa ser um inteiro não negativo dentro da cardinalidade do schema; solicitar edge[3] cria as ocorrências de edges ausentes precedentes, cada uma com seus próprios defaults de schema

Paths de criação suportados

Classe paiFilhos suportados e ocorrências máximas
fieldassist, bind, border, calculate, caption, desc, extras, font, format, keep, margin, para, traversal, ui, validate e value: um cada; items: dois
drawassist, border, caption, desc, extras, font, keep, margin, para, traversal, ui e value: um cada
uiextras e picture: um cada; uma escolha mutuamente exclusiva de widget como descrito em Overrides de propriedades de UI
passwordEdit, choiceList e checkButtonborder, extras e margin: um cada
fontextras e fill: um cada
parahyphenation: um
borderedge e corner: quatro cada; extras, fill e margin: um cada
captionextras, font, margin, para e value: um cada
marginextras: um
fillcolor e extras: um cada; linear, pattern, radial, solid e stipple: um filho mutuamente exclusivo
textEditborder, comb, extras e margin: um cada
edge e cornercolor e extras: um cada

Classes de filhos não listadas retornam null de getElement; ocorrências inválidas e filhos conflitantes de escolhas de fill fazem a transação do evento falhar

A criação de containers de metadados não executa scripts recém-armazenados; o comportamento de event, calculate e validate segue o modelo existente de execução do runtime

Persistência nativa e identidade

A criação e as escritas subsequentes publicam nós nativos reais de form packets sob a ocorrência repetida selecionada; o template e as demais ocorrências retêm seus valores originais

O evento seguinte reconstrói os bindings somente de formulários de propriedades a partir do packet nativo de formulários salvo, de modo que tanto o acesso direto quanto a resolução SOM observem a hierarquia criada

Referências retidas de objetos de script continuam endereçando a propriedade nativa após transações bem-sucedidas e inserção de instâncias; escrever numa referência depois que sua instância foi removida falha e restaura a transação

Clonar um prototype repetido também clona a estrutura somente de formulários de propriedades dele, usando defaults de schema para os novos atributos de propriedades, em vez dos overrides de outra ocorrência

Falhas do engine e falhas nativas de mutação restauram bytes nativos, nós de propriedades, datasets, estado de scripts e ordem de instâncias; a criação compartilha os orçamentos de nós, operações, profundidade, bytes e valores

Consumers efetivos e saída PDF salva

Consumers de campos e draws rich leem as propriedades criadas de fontes, fill/cor, parágrafos e bordas/edges durante o layout e o flattening reais; eventos subsequentes e reloads de XDP salvo preservam esses valores

Com THotPDF.AutoFormAppearances=True, os campos de texto XFA geram sua aparência nativa depois que o estilo efetivo é aplicado, incluindo famílias padrão suportadas de fontes, tamanho em pontos, cor do texto, alinhamento e cor e largura sólidas de bordas

AutoFormAppearances permanece uma opção explícita de documento; seu default False continua contando com a geração de aparências pelo reader

A criação e a cobertura de consumers de formatação são separadas: classes adicionais de filhos de valores e schemas de widgets, classes gerais de schema, remoção/reparenting de propriedades, texto de widgets mais rico e embutimento Unicode de aparências permanecem alvos ativos de implementação

APIs relacionadas

DOM nativo de propriedades XFA, Defaults do schema de propriedades XFA, TXFAEventAction e TXFAEventBinding