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 parente | Enfants pris en charge et occurrences maximales |
|---|---|
| field | assist, bind, border, calculate, caption, desc, extras, font, format, keep, margin, para, traversal, ui, validate et value : un chacun ; items : deux |
| draw | assist, border, caption, desc, extras, font, keep, margin, para, traversal, ui et value : un chacun |
| ui | extras et picture : un chacun ; un choix de widget mutuellement exclusif comme décrit dans Overrides de propriétés d'UI |
| passwordEdit, choiceList et checkButton | border, extras et margin : un chacun |
| font | extras et fill : un chacun |
| para | hyphenation : un |
| border | edge et corner : quatre chacun ; extras, fill et margin : un chacun |
| caption | extras, font, margin, para et value : un chacun |
| margin | extras : un |
| fill | color et extras : un chacun ; linear, pattern, radial, solid et stipple : un enfant mutuellement exclusif |
| textEdit | border, comb, extras et margin : un chacun |
| edge et corner | color 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