Estilos booleanos XFA y captions automáticos
Units: HPDFXFA y HPDFXFAHeadless
HPDFXFAWriteHeadlessPDF consume las propiedades checkButton efectivas y crea appearance streams nativos de checkbox y radio a partir del layout XFA real
Markers y outlines
El tamaño de checkButton toma por defecto 10pt y controla la región cuadrada del marker dentro de la región de contenido del campo; las medidas explícitas de tamaño, los márgenes de campo y de 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 un outline cuadrado y un círculo relleno para un outline redondo, siguiendo la especificación checkButton de XFA 3.3
Los marks explícitos check, circle, cross, diamond, square y star usan rutas vectoriales reales; no dependen de que la fuente suministrada contenga un símbolo de checkbox
El primer borde de la UI border aporta 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 aporta el color del mark asertado
El marker se reduce a la región de contenido restante cuando su tamaño configurado excede esa región; un caption o un margen que no deje región de contenido provoca el fallo de la preparación del candidato
Captions Unicode escalares
El texto de caption escalar conserva Unicode y los delimitadores exactamente, 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 sola apariencia y un solo 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 en línea preceden al marker y ignoran un reserve explícito; los márgenes del caption aplican sangría al texto dentro de su región asignada
Un tamaño y un color de relleno del caption invalidan el tamaño y el color del campo; la alineación de párrafo del caption invalida la alineación del campo, mientras que CaptionFontFamilies puede suministrar style faces reales y familias con nombre
Los captions hidden e inactive no ocupan región ni asignan grafo de fuentes; los captions invisible conservan su región sin pintar ni asignar glifos de caption
El consumidor de captions rich consume además XHTML efectivo, style faces reales configurados y selección de familia, métricas de línea mixtas y alturas de caption con wrapping
Tercer estado de checkbox
Cuando allowNeutral está activado, el tercer elemento guardado es la exportación neutral del checkbox; los valores coincidentes conservan 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 mantiene una entrada de exportación on para su widget único, como exige el modelo de campos de botón del PDF; un tercer estado de apariencia guardado no añade una segunda opción de widget
Las exportaciones vacías, el nombre reservado Off y los nombres que empiezan por XFAOn reciben alias de estado nativos sin colisiones usando sus bytes UTF-8 como hexadecimal en mayúsculas tras XFAOn; la tercera exportación original puede recuperarse a partir de su nombre de estado guardado
Un miembro radio ignora un tercer elemento y conserva su diccionario de apariencia de dos estados existente y su identidad de grupo de ámbitos template/data
El adaptador persiste el grafo de estado inicial; la operación nativa posterior de edición de botones de una aplicación tiene su propio contrato de estado y apariencia
Propiedades nativas de instancias y transacciones
Los valores por defecto de size, shape, mark y allowNeutral de checkButton están disponibles a través del schema del runtime nativo; las propiedades border y margin de checkButton ausentes pueden crearse mediante la transacción de propiedades existente
Las propiedades checkButton, caption, font y margin efectivas de instancias repetidas sobreviven a SaveToBytes y controlan de inmediato el widget PDF creado automáticamente correspondiente; la primera instancia repetida conserva sus propiedades independientes
Los valores de binding literales UTF-8 de fuente de eventos y Unicode conservan sus escalares antes de convertir el XDP guardado, incluido el texto de caption cambiado por un evento JavaScript nativo; 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 conservan 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 comprueba los diccionarios de estado realmente guardados, los recursos de fuentes compartidos, la colocación de captions, el texto Unicode y píxeles de markers distintos con pypdf y MuPDF
Boolean callback metadata describe las pistas de transporte aditivas que consume el creador nativo