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 padreHijos soportados y ocurrencias máximas
fieldassist, bind, border, calculate, caption, desc, extras, font, format, keep, margin, para, traversal, ui, validate y value: uno cada uno; items: dos
drawassist, border, caption, desc, extras, font, keep, margin, para, traversal, ui y value: uno cada uno
uiextras y picture: uno cada uno; una opción de widget mutuamente excluyente como se describe en UI Property Overrides
passwordEdit, choiceList y checkButtonborder, extras y margin: uno cada uno
fontextras y fill: uno cada uno
parahyphenation: uno
borderedge y corner: cuatro cada uno; extras, fill y margin: uno cada uno
captionextras, font, margin, para y value: uno cada uno
marginextras: uno
fillcolor y extras: uno cada uno; linear, pattern, radial, solid y stipple: un hijo mutuamente excluyente
textEditborder, comb, extras y margin: uno cada uno
edge y cornercolor 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