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