Captions rich XFA automáticos
Units: HPDFXFA, HPDFXFAHeadless y HPDFHeadlessAppearance
HPDFXFAWriteHeadlessPDF consume los valores de caption de checkbox y radio efectivos directamente del XDP guardado y crea Forms de apariencia nativos reales con fuentes embebidas
Contenido efectivo del caption
Los valores de caption escalares 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 conserva los hermanos de plantilla sin cambios y su namespace XHTML
Un reemplazo completo del payload mediante exData.loadXML correcto suministra su body importado real en lugar de volver a fusionar contenido de plantilla obsoleto en el caption
Los comentarios y las instrucciones de procesamiento 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 está acotada a 4096 nodos, profundidad 64, 65536 pasos de trabajo de overlay y 1 MiB de XHTML de origen y serializado cargado; el decoder nativo y los constructores de apariencias conservan sus propios límites de runs, glifos y bytes
Style faces y estilos reales
Suministra CaptionFontFamilies para programas regular, bold, italic y bold-italic reales y familias con nombre
El decoder XHTML nativo existente resuelve estilos en línea, límites de párrafo, listas de familias, colores, tamaños, formato underline y strike; el tamaño, weight, postura, typeface y color de relleno del caption escalar aportan el estilo por defecto
Un face o glifo solicitado ausente hace fallar la preparación; este consumidor no fabrica apariencias bold ni italic ni descubre fuentes externas
Medición y colocación
La medición y el pintado del caption usan el mismo layout rich 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 el 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 de párrafo explícitos siguen siendo saltos de línea, y el texto que excede el rectángulo fijo del campo se recorta
Los captions izquierdo y derecho automáticos usan su ancho natural; los captions en línea 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 de la apariencia resultante
El comportamiento del reserve sigue la definición de caption reserve de XFA 3.3
La altura natural incluye la extensión final de la línea según métricas de fuente más el padding nativo de dos puntos por lado; excluye el interlineado final sin usar 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 de caption real se comparte entre los estados off, on y neutral del mismo widget; las instancias repetidas retienen grafos de contenido y estilo independientes
El CSS de margin de párrafo y line-height personalizado, las imágenes de caption y otros payloads de caption no textuales, los captions rich de push-button y la reconstrucción posterior de apariencias interactivas conservan trabajo de consumidor separado
Transacciones y aceptación
Un evento nativo de propiedades correcto puede guardarse y recargarse antes de la creación automática del PDF; un fallo de script restaura los bytes XML nativos exactos, 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 tenga éxito; un error en la escritura del stream del propio llamador sigue la semántica de ese stream y no puede revertirse para un destino arbitrario nonseekable
Tests/Linux/XFAHeadlessRichCaptionTests.pas produce PDFs de captions con estilos reales, con wrapping, con selección de familia y no visibles; XFAHeadlessRichCaptionRuntimeTests.pas cubre overlays repetidos, reemplazo completo de XML y rollback
XFAHeadlessRichCaptionBudgetTests.pas ejercita fallos reales de recursos y fronteras de cancelación seleccionadas, mientras que HeadlessTextExtentTests.pas expone las extensiones de línea nativas medidas
Verify-XFAHeadlessRichCaptions.py inspecciona los grafos PDF guardados, los bytes exactos de los programas de fuentes suministrados, las referencias compartidas, el texto Unicode, las matrices de texto crudas, las métricas de fontTools y los píxeles renderizados con MuPDF sin abrir una UI de lector
TextHeight de solo lectura · Boolean callback metadata · Markers y estados booleanos