Automatic XFA native graphics and images

Unit: HPDFXFAHeadless

HPDFXFAWriteHeadlessPDF consumeert rechthoek-, lijn-, boog- en inline image-draw-callbacks rechtstreeks vanuit XDP, naast de bestaande tekst- en widget-consumers

Elke draw produceert een native Form XObject geplaatst op de echte layoutpagina; image-draws bevatten echte Image XObjects en alpha-soft masks wanneer nodig

Vector-paden

Rechthoeken gebruiken native PDF rechthoek-paden, lijnen behouden slash- of backslash-helling, en elliptische bogen gebruiken kubieke segmenten van hoogstens 90 graden

De eerste effectieve edge levert RGB-stroke-kleur en -dikte, inclusief subpunt-breedtes; stroke-appearance-bounds omvatten de helft van de dikte zodat de form niet diens eigen rand clipt

Bogen consumeren startAngle en getekende sweepAngle, met een default volledige omwenteling en een maximale absolute sweep van 360 graden

Draw-rotatie-, schaal- en translatie-hints worden één keer toegepast in een eindige affiene plaatsing rond het draw-centrum, met tegen-de-klok-in positieve rotatie; top-left XFA-coördinaten worden één keer geconverteerd naar de native PDF-oorsprong

PNG en JPEG

FormaatEchte native consumptie
PNG grijswaarden1, 2, 4, 8 en 16-bit samples, waarbij gepackte samples naar 8 bits worden uitgeklapt en 16-bit precisie behouden blijft
PNG RGB8 en 16-bit kleursamples
PNG indexed kleur1, 2, 4 en 8-bit indices uitgeklapt via het palet naar RGB-samples
PNG transparantieGrijswaarden- en RGB-transparante samples, palet-alpha en 8 of 16-bit grayscale-alpha en RGBA; echte /SMask-streams behouden alpha-precisie
PNG filtering en interlaceAlle vijf PNG rij-filters en Adam7-passes, gevalideerd via de gedeelde native zlib- en predictor-implementaties
JPEG8-bit baseline en progressive grijswaarden-, RGB- en CMYK-frames, gevalideerd met de gedeelde native JPEG-decoder voordat de originele /DCTDecode-stream wordt behouden

PNG chunk-checksums, -ordering, -dimensies, palet-indices, transparante sample-ranges en exacte gedecomprimeerde lengte worden gecheckt vóór het committen van een candidate; afgekapte of excessieve gecomprimeerde data laat preparatie falen

JPEG-frame-dimensies moeten overeenkomen met echte native decodering, en Adobe CMYK-inversie wordt expliciet in het image-dictionary gedeclareerd

JPEG vraagt de bestaande native TurboJPEG-runtime; HOTPDF_TURBOJPEG_LIBRARY kan een absoluut librarypad identificeren, met dependency-libraries vindbaar door het besturingssysteem

Image-aspect ondersteunt fit, none, width, height en actual; PNG pHYs en JPEG JFIF-dichtheid bepalen fysieke pixelgrootte, met 96 dpi wanneer geen bruikbare dichtheid bestaat

Geschaalde afbeeldingen worden gecentreerd en geclipt op de XFA-draw-rechthoek; alpha-compositie blijft een native PDF-reader-operatie

Grenzen en transactie

Encoded image-bytes, gedecodeerde working-buffers en raw image- of alpha-streams worden begrensd vóór allocatie; native objectlimieten en geaggregeerde image- en font-stream-limieten blijven actief

Annulering wordt gecheckt tijdens het parsen van chunks, het oppompen van data, het decoderen van rijen en het plaatsen van native objecten; de bestaande native JPEG-decoder ontvangt de aanroepers-token

Preparatiefalen behouden destination-positie, -lengte en -bytes; de finale destination WriteBuffer volgt de eigen I/O-semantics van de aanroepers-stream

Huidige grenzen

Gevulde vormen, corner-styling, edge-specifieke randen, dash-patronen, barcodes, extern image-transport, imageEdit-widgets, alternatieve image-formaten, embedded kleurprofielen en Exif-orientatie vragen nog steeds extra consumer-integratie

Animated PNG wordt geconsumeerd als diens default statische afbeelding; foreign XML exData blijft een aparte feature, en deze draw-adapter voert geen willekeurige embedded objecten uit

Acceptatie

Tests/Linux/Build-XFAHeadlessGraphicFixtures.py produceert deterministische rij-filter-, Adam7-, sample-precisie-, transparantie-, fysiek-aspect-, JPEG- en misvormde protocol-fixtures

Tests/Linux/XFAHeadlessGraphicsTests.pas schrijft en heropent echte native PDF's en verifieert aanroepers-preservatie bij fouten; Verify-XFAHeadlessGraphics.py checkt onafhankelijk gedecodeerde image-samples, /SMask-precisie, vector-operatoren, plaatsing en gerenderde pixels met pypdf en MuPDF

Automatic XFA native PDF creation beschrijft de bestaande veld- en tekst-consumers en de publieke options- en resultaat-API's