Estilos booleanos y captions XFA automáticos
Units: HPDFXFA y HPDFXFAHeadless
HPDFXFAWriteHeadlessPDF consume las propiedades efectivas de checkButton y crea appearance streams nativos reales de checkbox y radio a partir del layout XFA real
Marcadores y outlines
El size de checkButton tiene por defecto 10pt y controla la región del marcador cuadrado dentro de la región de contenido del campo; las medidas explícitas de size, los márgenes de campo y UI, y la alineación horizontal y vertical del párrafo determinan su posición
Las formas square y round determinan el outline; el mark asertado por defecto es una cruz para outline cuadrado y un círculo relleno para outline redondo, siguiendo la especificación checkButton de XFA 3.3
Los marks explícitos check, circle, cross, diamond, square y star usan paths vectoriales reales; no dependen de que la fuente suministrada contenga un símbolo de checkbox
El primer edge del borde de UI suministra su grosor, color y visibilidad; el outline por defecto es negro y de 0.5pt de ancho, mientras que el color efectivo de la fuente del campo suministra el color del mark asertado
El marcador se reduce a la región de contenido restante cuando su size configurado excede esa región; un caption o margin que no deje región de contenido hace fallar la preparación del candidato
Captions Unicode escalares
El texto de caption escalar retiene Unicode y delimitadores de forma exacta y se convierte en un Form XObject real con fuente embebida referenciado desde cada apariencia off, on y neutral de ese widget
El caption comparte una apariencia y un grafo de fuentes entre sus estados, y sus unidades UTF-16 se cuentan una vez por widget en TXFAHeadlessPDFResult.GlyphUnits
Left y right reservan un ancho de caption, mientras que top y bottom reservan una altura; un reserve omitido o cero usa los advances reales de glifos y las métricas de línea de la fuente suministrada para calcular la extensión natural del caption
Los captions inline preceden al marcador e ignoran un reserve explícito; los márgenes del caption insertan el texto dentro de su región asignada
Un size y color de relleno del caption sobrescriben el size y color del campo; la alineación de párrafo del caption sobrescribe la alineación del campo, mientras que CaptionFontFamilies puede suministrar faces de estilo reales y familias con nombre
Los captions hidden e inactive no ocupan región ni asignan grafo de fuentes; los captions invisible retienen su región sin pintar ni asignar glifos de caption
El consumidor de captions enriquecidos consume además XHTML efectivo, faces de estilo reales configuradas y selección de familia, métricas de línea mixtas y alturas de caption con wrapping
Terceros estados de checkbox
Cuando allowNeutral está activo, el tercer elemento guardado es el export neutral del checkbox; los valores coincidentes retienen un /V nativo y un /AS de widget distintos con su propia entrada /AP /N
La apariencia neutral dibuja el outline vacío y el mismo caption; no dibuja el mark asertado
El array /Opt del checkbox conserva una entrada de export on para su único widget, como exige el modelo de campos botón del PDF; un tercer estado de apariencia guardado no agrega una segunda opción de widget
Los exports vacíos, el nombre reservado Off y los nombres que comienzan con XFAOn reciben alias nativos de estado sin colisiones usando sus bytes UTF-8 como hexadescriptivos en mayúsculas tras XFAOn; el tercer export original puede recuperarse desde su nombre de estado guardado
Un miembro radio ignora un tercer elemento y retiene su diccionario de apariencia de dos estados existente y su identidad de grupo de ámbito plantilla/datos
El adapter persiste el grafo de estado inicial; una operación posterior nativa de edición de botón de la aplicación tiene su propio contrato de estado y apariencia
Propiedades nativas de instancia y transacciones
Los valores por defecto de size, shape, mark y allowNeutral de checkButton están disponibles a través del schema nativo del runtime; las propiedades ausentes de borde y margin de checkButton pueden crearse mediante la transacción de propiedades existente
Las propiedades efectivas de checkButton, caption, font y margin de instancias repetidas sobreviven a SaveToBytes y controlan de inmediato el widget PDF correspondiente creado automáticamente; la primera instancia repetida retiene sus propiedades independientes
El código fuente literal UTF-8 de eventos y los valores Unicode de bindings retienen sus escalares antes de que el XDP guardado se convierta, incluido el texto de caption cambiado por un evento nativo JavaScript; consulta HPDFXFAExecuteJavaScriptEvent
Un fallo de script restaura el XML nativo exacto antes de la creación, y los fallos de preparación preservan posición, longitud y bytes del destino; los presupuestos de glifos, objetos y fuentes y la cancelación retienen el límite transaccional del creador automático
Fuentes de aceptación
Tests/Linux/XFAHeadlessBooleanStylesTests.pas produce pares de marks reales, captions, estados neutral y reservados, cambios de script en instancias repetidas y casos de rollback sin UI de lector
Tests/Linux/Verify-XFAHeadlessBooleanStyles.py verifica diccionarios de estado guardados reales, recursos de fuentes compartidos, colocación de captions, texto Unicode y píxeles de marcadores distintos con pypdf y MuPDF
Los metadatos del callback booleano describen las pistas aditivas de transporte que consume el creador nativo