Captions XFA enriquecidos automáticos

Units: HPDFXFA, HPDFXFAHeadless y HPDFHeadlessAppearance

HPDFXFAWriteHeadlessPDF consume los valores efectivos de captions de checkbox y radio directamente del XDP guardado y crea Forms de apariencia nativos reales con fuentes embebidas

Contenido efectivo del caption

Los valores escalares de caption y el contenido del body XHTML de exData se convierten en texto nativo; el body debe usar el namespace http://www.w3.org/1999/xhtml

Un overlay parcial de formulario de instancia repetida cambia el texto y los atributos del elemento de plantilla correspondiente mientras retiene los hermanos de plantilla sin cambios y su namespace XHTML

Un reemplazo de payload completo exitoso vía exData.loadXML suministra su body importado real en lugar de fusionar de nuevo contenido de plantilla obsoleto en el caption

Los comentarios y processing instructions permanecen en el XDP guardado original pero se omiten de la copia de rendering, de modo que sus payloads nunca se convierten en texto visible del caption

La copia de rendering se acota a 4096 nodos, profundidad 64, 65536 pasos de trabajo de overlay y 1 MiB de XHTML de origen y serializado cargados; el decoder nativo y los builders de apariencias retienen sus propios límites de runs, glifos y bytes

Faces y estilos de fuentes reales

Suministra CaptionFontFamilies para programas reales regular, bold, italic y bold-italic y familias con nombre

El decoder nativo de XHTML existente resuelve estilos inline, límites de párrafo, listas de familias, colores, tamaños, formato underline y strike; el size, weight, posture, typeface y color de relleno del caption escalar proveen el estilo por defecto

Una face o glifo solicitado ausente hace fallar la preparación; este consumidor no fabrica apariencias bold o italic ni descubre fuentes externas

Medición y colocación

La medición y el pintado del caption usan el mismo layout rico nativo y los programas de fuentes suministrados, incluidos los advances reales de glifos, el ascent y descent específicos del estilo, las baselines de línea comunes y el wrapping

Un reserve fijo a la izquierda o derecha restringe el ancho del texto; un reserve positivo arriba o abajo permite wrapping dentro del ancho disponible del campo

Un reserve omitido, cero o el valor por defecto del schema -1 usa la extensión natural del caption sin wrapping automático de texto; los límites explícitos de párrafo siguen siendo saltos de línea, y el texto que excede un rectángulo fijo de campo se recorta

Los captions automáticos a la izquierda y derecha usan su ancho natural; los captions inline ignoran el reserve explícito tanto en la medición como en la colocación

Los márgenes del caption reducen la región real de texto, y la alineación horizontal y vertical del caption controla la colocación resultante de la apariencia

El comportamiento del reserve sigue la definición de caption reserve de XFA 3.3

La altura natural incluye la extensión final de línea de las métricas de fuente más el padding nativo de dos puntos por lado; excluye el leading final no usado tras la última línea

Los captions hidden e inactive no consumen región; los captions invisible reservan su región medida sin pintar ni cargar glifos de caption

Un Form real de caption se comparte entre los estados off, on y neutral del mismo widget; las instancias repetidas retienen grafos independientes de contenido y estilo

El CSS de márgenes de párrafo y line-height personalizado, las imágenes de caption y otros payloads de caption de no texto, los captions enriquecidos de push-button y la reconstrucción posterior de apariencias interactivas retienen trabajo de consumidor separado

Transacciones y aceptación

Un evento nativo exitoso de propiedades puede guardarse y recargarse antes de la creación automática del PDF; el fallo de script restaura los bytes nativos exactos del XML, y los fallos de presupuesto de preparación o de cancelación preservan los bytes, la longitud y la posición del destino

Las escrituras al destino comienzan solo después de que el candidato completo tiene éxito; un error de la escritura de stream propia del llamador sigue la semántica de ese stream y no puede revertirse para un destino arbitrario nonseekable

Tests/Linux/XFAHeadlessRichCaptionTests.pas produce PDFs reales de captions con estilo, con wrapping, con familia seleccionada y no visibles; XFAHeadlessRichCaptionRuntimeTests.pas cubre overlays repetidos, reemplazo XML completo y rollback

XFAHeadlessRichCaptionBudgetTests.pas ejercita fallos reales de recursos y límites de cancelación seleccionados, mientras que HeadlessTextExtentTests.pas expone las extensiones nativas medidas de líneas

Verify-XFAHeadlessRichCaptions.py inspecciona grafos de PDF guardados, bytes exactos de programas de fuentes suministrados, referencias compartidas, texto Unicode, matrices de texto crudas, métricas de fontTools y píxeles renderizados por MuPDF sin abrir una UI de lector

TextHeight de solo lectura · Metadatos del callback booleano · Marcadores y estados booleanos