Erzeugung fehlender nativer XFA-Properties
Unit: HPDFXFAEventScript, integriert über HPDFXFARuntime und HPDFXFA
Ereigniszugriff
JavaScript-Formularknoten legen getElement(className, occurrence=0) offen; eine fehlende unterstützte Property wird mit Schema-Defaults erzeugt, und wiederholter Zugriff liefert dasselbe Live-Property-Handle
Direkter Property-Zugriff, etwa field.font oder draw.para, erzeugt Vorkommen null, wenn das unterstützte Kind fehlt
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";
Das occurrence-Argument muss ein nichtnegativer Integer innerhalb der Schema-Kardinalität sein; die Anforderung von edge[3] erzeugt die fehlenden vorherigen edge-Vorkommen, jeweils mit eigenen Schema-Defaults
Unterstützte Erzeugungspfade
| Elternklasse | Unterstützte Kinder und maximale Vorkommen |
|---|---|
| field | assist, bind, border, calculate, caption, desc, extras, font, format, keep, margin, para, traversal, ui, validate und value: je eines; items: zwei |
| draw | assist, border, caption, desc, extras, font, keep, margin, para, traversal, ui und value: je eines |
| ui | extras und picture: je eines; eine wechselseitig exklusive Widget-Choice wie in UI-Property-Override beschrieben |
| passwordEdit, choiceList und checkButton | border, extras und margin: je eines |
| font | extras und fill: je eines |
| para | hyphenation: eines |
| border | edge und corner: je vier; extras, fill und margin: je eines |
| caption | extras, font, margin, para und value: je eines |
| margin | extras: eines |
| fill | color und extras: je eines; linear, pattern, radial, solid und stipple: ein wechselseitig exklusives Kind |
| textEdit | border, comb, extras und margin: je eines |
| edge und corner | color und extras: je eines |
Nicht gelistete Kindklassen liefern null aus getElement; ungültige Vorkommen und konfligierende fill-Choice-Kinder lassen die Ereignistransaktion fehlschlagen
Die Erzeugung von Metadaten-Containern führt neu gespeicherte Skripte nicht aus; das event-, calculate- und validate-Verhalten folgt dem bestehenden Runtime-Ausführungsmodell
Native Persistenz und Identität
Erzeugung und nachfolgende Schreibzugriffe veröffentlichen echte native Form-Packet-Knoten unter dem ausgewählten wiederholten Vorkommen; das Template und andere Vorkommen behalten ihre Originalwerte
Das nächste Ereignis baut die formularseitigen Property-Bindings aus dem gespeicherten nativen Form-Packet neu auf, sodass direkter Zugriff und SOM-Auflösung die erzeugte Hierarchie sehen
Erhaltene Skriptobjekt-Referenzen adressieren die native Property auch nach erfolgreichen Transaktionen und Instanzeinfügung weiter; ein Schreibzugriff auf eine Referenz nach dem Entfernen ihrer Instanz schlägt fehl und stellt die Transaktion wieder her
Das Klonen eines wiederholten Prototyps klont auch seine formularseitige Property-Struktur und nutzt Schema-Defaults für neue Property-Attribute statt der Override eines anderen Vorkommens
Engine-Fehler und native Mutationsfehler stellen native Bytes, Property-Knoten, datasets, Skriptzustand und Instanzreihenfolge wieder her; die Erzeugung teilt Knoten-, Operations-, Tiefe-, Byte- und Wertbudgets
Effektive Consumer und gespeicherter PDF-Output
Feld- und Rich-Draw-Consumer lesen erzeugte font-, fill/color-, absatz- und border/edge-Properties während tatsächlicher Layout- und Flatten-Vorgänge; nachfolgende Ereignisse und gespeicherte XDP-Neuladungen bewahren diese Werte
Mit THotPDF.AutoFormAppearances=True erzeugen XFA-Textfelder ihre native Appearance, nachdem der effektive Style angewendet wurde, einschließlich unterstützter Standard-Schriftfamilien, Punktgröße, Textfarbe, Ausrichtung sowie einfarbiger Rahmenfarbe und -breite
AutoFormAppearances bleibt eine explizite Dokumentoption; ihr Default False verlässt sich weiterhin auf die Appearance-Erzeugung durch den Reader
Erzeugungs- und Formatierungs-Consumer-Abdeckung sind getrennt: zusätzliche value-Kindklassen und Widget-Schemas, allgemeine Schema-Klassen, Property-Entfernung/Reparenting, reichhaltigerer Widget-Text und Unicode-Appearance-Einbettung bleiben aktive Implementierungsziele
Verwandte APIs
Natives XFA Property DOM, XFA-Property-Schema-Defaults, TXFAEventAction und TXFAEventBinding