Creación de propiedades XFA ausentes nativas
Unit: HPDFXFAEventScript, integrada a través de HPDFXFARuntime y HPDFXFA
Acceso por eventos
Los nodos de formulario JavaScript exponen getElement(className, occurrence=0); una propiedad soportada ausente se crea con valores por defecto de schema, y el acceso repetido devuelve el mismo handle en vivo de la propiedad
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; solicitar edge[3] crea las ocurrencias edge faltantes previas, cada una con sus propios valores por defecto de 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, validate 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 opció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 hijas no listadas devuelven null desde getElement; las ocurrencias inválidas y los hijos de opciones 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 existente de ejecución del runtime
Persistencia e identidad nativas
La creación y las escrituras posteriores publican nodos reales del form packet nativo bajo la ocurrencia repetida seleccionada; la plantilla y las demás ocurrencias retienen sus valores originales
El siguiente evento reconstruye los bindings de propiedades exclusivas de formulario desde el form packet nativo guardado, de modo que tanto el acceso directo como la resolución SOM observan la jerarquía creada
Las referencias retenidas de script objects siguen apuntando a la propiedad nativa después de transacciones exitosas e inserciones de instancias; escribir en una referencia después de que su instancia fue eliminada falla y restaura la transacción
Clonar un prototipo repetido también clona su estructura de propiedades exclusivas de formulario, usando valores por defecto de schema para los atributos de propiedades nuevos en lugar de los overrides de otra ocurrencia
Los fallos del engine y las mutaciones nativas fallidas 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 draws enriquecidos 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 continúa dependiendo de la generación de apariencias por parte del lector
La creación y la cobertura de consumidores de formato son separadas: clases hijas de valor adicionales y schemas de widgets, clases generales de schema, eliminación/reubicación de propiedades, texto de widgets más rico y embebido de apariencias Unicode siguen siendo objetivos activos de implementación
APIs relacionadas
Property DOM XFA nativo, Valores por defecto de schema de propiedades XFA, TXFAEventAction y TXFAEventBinding