Creación automática de choices y booleanos XFA

Unit: HPDFXFAHeadless

HPDFXFAWriteHeadlessPDF consume el layout XFA real y construye campos choice, widgets checkbox y padres y miembros radio sin slots PDF preparados

Campos choice

Los campos combo y list usan diccionarios nativos /FT /Ch; las listas XFA separadas de display y save se convierten en pares /Opt export/display, preservando Unicode, delimitadores, exports vacíos explícitos, items escalares tipados y whitespace circundante de exports

Un combo editable retiene su valor de texto libre; un choice no editable exige que el export seleccionado exista en su lista de opciones

Los valores multi-select se convierten en un array nativo /V ordenado y los índices /I correspondientes en orden de opciones; la entrada ordinaria de solo valor usa exports separados por saltos de línea y rechaza valores seleccionados duplicados durante la preparación

El scripting de items de choice preserva los índices explícitos exactos para exports duplicados y vacíos a través del XDP guardado, de modo que sus arrays PDF /I, los valores /V exportados y las apariencias de etiquetas de display permanezcan sin ambigüedad

La validación de selección duplicada compara strings exactos sin reordenar la lista de selección escrita; un heap sort de índices reemplaza las comparaciones cuadráticas por pares y comprueba la cancelación a lo largo de la validación de unicidad

El texto de apariencia del choice usa etiquetas de display, mientras que /V usa valores de export; las apariencias de list contienen una ventana visible medida con la primera selección, un índice /TI superior exacto y highlights relativos de filas seleccionadas mientras retiene el grafo completo de opciones

Los flags nativos de combo, edit, multi-select, commit de selección y readOnly usan tokens enteros PDF exactos para que un bit alto de flag no pueda borrar el bit readOnly

Estados de checkbox y radio

Los checkboxes contienen Form XObjects reales de estado Off y on; los estilos booleanos y captions consumen formas de marcadores reales, size, outlines de UI, colores de campos, captions Unicode escalares y terceros estados de checkbox sin depender de un carácter de check en la fuente suministrada

El /Opt nativo retiene el valor de export de XFA; el export reservado Off y los exports que comienzan con XFAOn reciben aliases de estado activo sin colisiones, mientras que sus strings reales de export permanecen sin cambios en /Opt

Los miembros radio comparten un padre nativo por ruta de exclusion-group de plantilla y por ruta nativa de contexto de datos; los grupos repetidos reciben /Kids, /V, /Opt y estados /AS de widgets independientes incluso cuando sus nombres de grupo mostrados son idénticos

Los exports iguales dentro de un grupo radio activan RadiosInUnison y activan cada miembro correspondiente; la política de edición de todo el documento y el acceso del exclusion-group determinan el flag readOnly del padre

El layout tb y lr-tb de exclusion-groups se despacha con el ámbito nativo actual de datos, y los exclusion-groups posicionados aplican su propio origen x/y a sus miembros

Persistencia en runtime y preparación

Las lecturas y asignaciones de rawValue de exclusion-groups participan en la transacción nativa existente de eventos, el binding de celdas, la sincronización formulario/datos y el rollback; el XDP de runtime guardado puede pasarse directamente al creador automático

El fixture de aceptación muta el segundo combo, checkbox y exclusion group repetidos, lee el grupo a través de su alias de datos de inmediato, guarda el XDP y verifica de forma independiente los valores, estados y apariencias del PDF resultante preservando la primera instancia

Todos los fallos de preparación de candidatos preservan los bytes, la longitud y la posición del destino; los arrays de opciones de choices, los nombres de campos, los exports booleanos, los conteos de widgets, las asignaciones de grafos y el texto agregado de apariencias retienen los límites existentes de recursos

El fallo de I/O del destino retiene el límite de stream del llamador descrito por la creación automática de XFA

Trabajo de consumidores restante

Los captions enriquecidos, el dimensionamiento de captions con wrapping, los estilos de outline por edge y rellenos, los commits posteriores de estados de widgets, el scrolling interactivo posterior de listas, la ambigüedad de solo valor para exports con saltos de línea, los layouts avanzados de exclusion-groups y los campos de firma siguen siendo trabajo de integración separado

Los metadatos de choice documentan las pistas aditivas de callbacks que usan estos consumidores nativos