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