Gráficos e imágenes XFA nativos automáticos

Unit: HPDFXFAHeadless

HPDFXFAWriteHeadlessPDF consume los callbacks de draw de rectangle, line, arc e imágenes en línea directamente del XDP, junto a los consumidores existentes de texto y widgets

Cada draw produce un Form XObject nativo colocado en la página real del layout; los draws de imagen contienen Image XObjects reales y máscaras soft de alfa cuando hacen falta

Rutas vectoriales

Los rectángulos usan rutas de rectángulo PDF nativas, las líneas preservan la pendiente de barra o barra invertida, y los arcos elípticos usan segmentos cúbicos de 90 grados como máximo

El primer edge efectivo aporta el color de trazo RGB y el grosor, incluidos los anchos subpunto; los límites de la apariencia del trazo incluyen la mitad del grosor para que el form no recorte su propio borde

Los arcos consumen startAngle y sweepAngle con signo, con una revolución completa por defecto y un barrido absoluto máximo de 360 grados

Las pistas de rotación, escala y traslación del draw se aplican una vez en una colocación afín finita alrededor del centro del draw, con rotación positiva antihoraria; las coordenadas XFA de arriba-izquierda se convierten una sola vez al origen PDF nativo

PNG y JPEG

FormatoConsumo nativo real
PNG escala de grisesMuestras de 1, 2, 4, 8 y 16 bits, con las muestras empaquetadas expandidas a 8 bits y la precisión de 16 bits conservada
PNG RGBMuestras de color de 8 y 16 bits
PNG de color indexadoÍndices de 1, 2, 4 y 8 bits expandidos a través de la paleta en muestras RGB
PNG transparenciaMuestras transparentes en escala de grises y RGB, alfa de paleta y grayscale-alpha y RGBA de 8 o 16 bits; los streams /SMask reales preservan la precisión del alfa
PNG filtering e interlaceLos cinco filtros de fila PNG y las pasadas Adam7, validados mediante las implementaciones nativas compartidas de zlib y predictores
JPEGFrames grayscale, RGB y CMYK baseline y progressive de 8 bits, validados con el decoder JPEG nativo compartido antes de preservar el stream /DCTDecode original

Los checksums de chunks PNG, el orden, las dimensiones, los índices de paleta, los rangos de muestras transparentes y la longitud exacta descomprimida se comprueban antes de confirmar un candidato; datos comprimidos truncados o en exceso hacen fallar la preparación

Las dimensiones de los frames JPEG deben coincidir con la decodificación nativa real, y la inversión CMYK de Adobe se declara explícitamente en el diccionario de la imagen

JPEG exige el runtime nativo TurboJPEG existente; HOTPDF_TURBOJPEG_LIBRARY puede identificar una ruta absoluta de librería, con las librerías dependientes descubribles por el sistema operativo

El aspect de la imagen soporta fit, none, width, height y actual; los pHYs de PNG y la densidad JFIF de JPEG determinan el tamaño físico del píxel, usando 96 dpi cuando no existe densidad utilizable

Las imágenes escaladas se centran y recortan al rectángulo draw de XFA; la composición alfa sigue siendo una operación del lector PDF nativo

Límites y transacción

Los bytes de imágenes codificadas, los buffers de trabajo decodificados y los streams crudos de imagen o alfa se acotan antes de la asignación; los límites nativos de objetos y los límites agregados de streams de imágenes y fuentes siguen activos

La cancelación se comprueba mientras se parsean chunks, se infla data, se decodifican filas y se colocan objetos nativos; el decoder JPEG nativo existente recibe el token del llamador

Los fallos de preparación preservan posición, longitud y bytes del destino; el WriteBuffer final al destino sigue la semántica de I/O propia del stream del llamador

Límites actuales

Las formas rellenas, el estilo de corners, los bordes específicos por edge, los dash patterns, los códigos de barras, el transporte externo de imágenes, los widgets imageEdit, los formatos de imagen alternativos, los perfiles de color embebidos y la orientación Exif aún requieren integración adicional de consumidores

El PNG animado se consume como su imagen estática por defecto; el XML externo exData sigue siendo una feature separada, y este adaptador de draws no ejecuta objetos embebidos arbitrarios

Aceptación

Tests/Linux/Build-XFAHeadlessGraphicFixtures.py produce fixtures deterministas de filtros de fila, Adam7, precisión de muestras, transparencia, aspect físico, JPEG y protocolo mal formado

Tests/Linux/XFAHeadlessGraphicsTests.pas escribe y reabre PDFs nativos reales y verifica la preservación del llamador en los fallos; Verify-XFAHeadlessGraphics.py comprueba de forma independiente las muestras de imagen decodificadas, la precisión de /SMask, los operadores vectoriales, la colocación y los píxeles renderizados con pypdf y MuPDF

Automatic XFA native PDF creation describe los consumidores existentes de campos y texto y las APIs públicas de opciones y resultados