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 pai | Filhos suportados e ocorrências máximas |
|---|---|
| field | assist, bind, border, calculate, caption, desc, extras, font, format, keep, margin, para, traversal, ui, validate e value: um cada; items: dois |
| draw | assist, border, caption, desc, extras, font, keep, margin, para, traversal, ui e value: um cada |
| ui | extras e picture: um cada; uma escolha mutuamente exclusiva de widgets como descrito em Overrides de propriedades de UI |
| passwordEdit, choiceList e checkButton | border, extras e margin: um cada |
| font | extras e fill: um cada |
| para | hyphenation: um |
| border | edge e corner: quatro cada; extras, fill e margin: um cada |
| caption | extras, font, margin, para e value: um cada |
| margin | extras: um |
| fill | color e extras: um cada; linear, pattern, radial, solid e stipple: um filho mutuamente exclusivo |
| textEdit | border, comb, extras e margin: um cada |
| edge e corner | color 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