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