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