Criação nativa de propriedades XFA ausentes

Unidade: HPDFXFAEventScript, integrada através de HPDFXFARuntime e HPDFXFA

Acesso a eventos

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

O 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 argumento de ocorrências tem de ser um inteiro não negativo dentro da cardinalidade do schema; pedir edge[3] cria as ocorrências precedentes de edges em falta, cada uma com os defaults de schema próprios dela

Caminhos suportados de criação

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 widgets 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 filhas não listadas devolvem null de getElement; ocorrências inválidas e filhos de escolhas de fills conflituosos fazem falhar a transação de eventos

A criação de contentores de metadados não executa scripts recém-guardados; o comportamento de eventos, cálculo e validação segue o modelo existente de execução do runtime

Persistência nativa e identidades

A criação e as escritas subsequentes publicam nós nativos reais de pacotes de formulários sob a ocorrência repetida selecionada; o template e as outras ocorrências mantêm os valores originais delas

O evento seguinte reconstrói bindings apenas de formulários de propriedades a partir do pacote nativo de formulários guardado, pelo que tanto o acesso direto como a resolução SOM observam a hierarquia criada

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

Clonar um protótipo repetido também clona a estrutura dele apenas de formulários de propriedades, usando defaults de schemas para atributos novos de propriedades em vez dos overrides de outra ocorrência

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

Consumidores efetivos e saída de PDFs guardados

Consumidores de campos e de draws rich leem propriedades criadas de tipos de letra, fills/cores, parágrafos e bordas/edges durante o layout e o flattening reais; eventos subsequentes e recarregamentos guardados de XDP preservam estes valores

Com THotPDF.AutoFormAppearances=True, campos de texto XFA geram a aparência nativa deles depois de o estilo efetivo ser aplicado, incluindo famílias standard suportadas de tipos de letra, tamanho em pontos, cor de texto, alinhamento e cor e largura sólidas de bordas

AutoFormAppearances permanece uma opção explícita de documentos; o default False dele continua a depender da geração de aparências pelos leitores

A cobertura de criação e de consumidores de formatação é separada: classes filhas adicionais de valores e schemas de widgets, classes gerais de schemas, remoção/reparenting de propriedades, texto de widgets mais rico e embedding Unicode de aparências continuam a ser alvos ativos de implementação

APIs relacionadas

Property DOM nativo de XFA, Defaults de schemas de propriedades XFA, TXFAEventAction e TXFAEventBinding