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
| Formaat | Echte native consumptie |
|---|---|
| PNG grijswaarden | 1, 2, 4, 8 en 16-bit samples, waarbij gepackte samples naar 8 bits worden uitgeklapt en 16-bit precisie behouden blijft |
| PNG RGB | 8 en 16-bit kleursamples |
| PNG indexed kleur | 1, 2, 4 en 8-bit indices uitgeklapt via het palet naar RGB-samples |
| PNG transparantie | Grijswaarden- en RGB-transparante samples, palet-alpha en 8 of 16-bit grayscale-alpha en RGBA; echte /SMask-streams behouden alpha-precisie |
| PNG filtering en interlace | Alle vijf PNG rij-filters en Adam7-passes, gevalideerd via de gedeelde native zlib- en predictor-implementaties |
| JPEG | 8-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