Création de propriétés absentes XFA natives

Unité : HPDFXFAEventScript, intégrée via HPDFXFARuntime et HPDFXFA

Accès par événement

Les nœuds de formulaires JavaScript exposent getElement(className, occurrence=0) ; une propriété prise en charge absente est créée avec les valeurs par défaut du schéma, et un accès répété retourne le même handle de propriété dynamique

L'accès direct aux propriétés, comme field.font ou draw.para, crée l'occurrence zéro quand l'enfant pris en charge est absent

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

L'argument occurrence doit être un entier non négatif dans la cardinalité du schéma ; demander edge[3] crée les occurrences edge manquantes précédentes, chacune avec ses propres valeurs par défaut de schéma

Chemins de création pris en charge

Classe parenteEnfants pris en charge et occurrences maximales
fieldassist, bind, border, calculate, caption, desc, extras, font, format, keep, margin, para, traversal, ui, validate et value : un chacun ; items : deux
drawassist, border, caption, desc, extras, font, keep, margin, para, traversal, ui et value : un chacun
uiextras et picture : un chacun ; un choix de widget mutuellement exclusif comme décrit dans Overrides de propriétés d'UI
passwordEdit, choiceList et checkButtonborder, extras et margin : un chacun
fontextras et fill : un chacun
parahyphenation : un
borderedge et corner : quatre chacun ; extras, fill et margin : un chacun
captionextras, font, margin, para et value : un chacun
marginextras : un
fillcolor et extras : un chacun ; linear, pattern, radial, solid et stipple : un enfant mutuellement exclusif
textEditborder, comb, extras et margin : un chacun
edge et cornercolor et extras : un chacun

Les classes enfants non listées retournent null depuis getElement ; les occurrences invalides et les enfants de choix fill conflictuels font échouer la transaction de l'événement

La création de conteneurs de métadonnées n'exécute pas les scripts nouvellement stockés ; le comportement event, calculate et validate suit le modèle d'exécution runtime existant

Persistance et identité natives

La création et les écritures suivantes publient de véritables nœuds de packet de formulaire natifs sous l'occurrence répétée sélectionnée ; le template et les autres occurrences conservent leurs valeurs d'origine

L'événement suivant reconstruit les bindings de propriétés propres au formulaire depuis le packet de formulaire natif enregistré, si bien que l'accès direct et la résolution SOM observent la hiérarchie créée

Les références de script objects conservées continuent de pointer vers la propriété native après des transactions réussies et l'insertion d'instances ; écrire une référence après suppression de son instance échoue et restaure la transaction

Cloner un prototype répété clone aussi sa structure de propriétés propres au formulaire, en utilisant les valeurs par défaut du schéma pour les nouveaux attributs de propriétés plutôt que les overrides d'une autre occurrence

Les échecs du moteur et les échecs de mutation native restaurent les octets natifs, les nœuds de propriétés, les datasets, l'état des scripts et l'ordre des instances ; la création partage les budgets de nœuds, d'opérations, de profondeur, d'octets et de valeurs

Consommateurs effectifs et sortie PDF enregistrée

Les consommateurs de champs et de draws riches lisent les propriétés créées de font, fill/color, paragraphe et border/edge pendant la mise en page et le flattening réels ; les événements suivants et les rechargements du XDP enregistré préservent ces valeurs

Avec THotPDF.AutoFormAppearances=True, les champs de texte XFA génèrent leur apparence native après application du style effectif, y compris les familles de polices standard prises en charge, la taille en points, la couleur du texte, l'alignement et la couleur et largeur de bordure solides

AutoFormAppearances reste une option de document explicite ; sa valeur par défaut False continue de s'appuyer sur la génération d'apparences par le lecteur

La couverture de création et celle des consommateurs de formatage sont séparées : les classes enfants de value supplémentaires et les schémas de widgets, les classes de schéma générales, la suppression/reparentage de propriétés, le texte de widgets plus riche et l'embarquement d'apparences Unicode restent des cibles d'implémentation actives

APIs associées

Property DOM XFA natif, Valeurs par défaut du schéma de propriétés XFA, TXFAEventAction et TXFAEventBinding