Creación de propiedades ausentes XFA nativas
Unit: HPDFXFAEventScript, integrado a través de HPDFXFARuntime y HPDFXFA
Acceso desde eventos
Los nodos de formulario JavaScript exponen getElement(className, occurrence=0); una propiedad soportada ausente se crea con los valores por defecto del schema, y el acceso repetido devuelve el mismo handle de propiedad en vivo
El acceso directo a propiedades, como field.font o draw.para, crea la ocurrencia cero cuando el hijo soportado 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";
El argumento de ocurrencia debe ser un entero no negativo dentro de la cardinalidad del schema; pedir edge[3] crea las ocurrencias edge faltantes precedentes, cada una con sus propios valores por defecto del schema
Rutas de creación soportadas
| Clase padre | Hijos soportados y ocurrencias máximas |
|---|---|
| field | assist, bind, border, calculate, caption, desc, extras, font, format, keep, margin, para, traversal, ui y value: uno cada uno; items: dos |
| draw | assist, border, caption, desc, extras, font, keep, margin, para, traversal, ui y value: uno cada uno |
| ui | extras y picture: uno cada uno; una elección de widget mutuamente excluyente como se describe en UI Property Overrides |
| passwordEdit, choiceList y checkButton | border, extras y margin: uno cada uno |
| font | extras y fill: uno cada uno |
| para | hyphenation: uno |
| border | edge y corner: cuatro cada uno; extras, fill y margin: uno cada uno |
| caption | extras, font, margin, para y value: uno cada uno |
| margin | extras: uno |
| fill | color y extras: uno cada uno; linear, pattern, radial, solid y stipple: un hijo mutuamente excluyente |
| textEdit | border, comb, extras y margin: uno cada uno |
| edge y corner | color y extras: uno cada uno |
Las clases de hijos no listadas devuelven null desde getElement; las ocurrencias inválidas y los hijos de elección de fill en conflicto hacen fallar la transacción del evento
La creación de contenedores de metadatos no ejecuta los scripts recién almacenados; el comportamiento de event, calculate y validate sigue el modelo de ejecución del runtime existente
Persistencia e identidad nativas
La creación y las escrituras posteriores publican nodos reales del paquete nativo de formularios bajo la ocurrencia repetida seleccionada; la plantilla y las demás ocurrencias conservan sus valores originales
El siguiente evento reconstruye los bindings de propiedades exclusivas del formulario desde el paquete nativo guardado, de modo que tanto el acceso directo como la resolución SOM observan la jerarquía creada
Las referencias de script objects retenidas siguen apuntando a la propiedad nativa tras transacciones correctas e inserciones de instancias; escribir en una referencia después de eliminar su instancia falla y restaura la transacción
Clonar un prototipo repetido también clona su estructura de propiedades exclusivas del formulario, usando los valores por defecto del schema para los atributos de propiedades nuevos en lugar de los overrides de otra ocurrencia
Los fallos del engine y los fallos de mutación nativa restauran los bytes nativos, los nodos de propiedades, los datasets, el estado de scripts y el orden de instancias; la creación comparte los presupuestos de nodos, operaciones, profundidad, bytes y valores
Consumidores efectivos y salida PDF guardada
Los consumidores de campos y de draws rich leen las propiedades creadas de font, fill/color, párrafo y border/edge durante el layout y el flattening reales; los eventos posteriores y las recargas del XDP guardado preservan estos valores
Con THotPDF.AutoFormAppearances=True, los campos de texto XFA generan su apariencia nativa después de aplicar el estilo efectivo, incluidas las familias de fuentes estándar soportadas, el tamaño en puntos, el color de texto, la alineación y el color y ancho de borde sólido
AutoFormAppearances sigue siendo una opción explícita del documento; su valor por defecto False sigue confiando en la generación de apariencias del lector
La creación y la cobertura de consumidores de formato son independientes: las clases de hijos de value adicionales y schemas de widgets, las clases de schema generales, el borrado/reparentado de propiedades, el texto de widgets más rico y el embebido de apariencias Unicode siguen siendo objetivos de implementación activos
APIs relacionadas
Native XFA Property DOM, XFA Property Schema Defaults, TXFAEventAction y TXFAEventBinding