Automatiske XFA native graphics og billeder
Unit: HPDFXFAHeadless
HPDFXFAWriteHeadlessPDF forbruger rektangel-, linje-, bue- og inline billeddraw-callbacks direkte fra XDP sammen med de eksisterende tekst- og widget-consumers
Hvert draw producerer et nativt Form XObject placeret på den faktiske layoutsider; billeddraws indeholder rigtige Image XObjects og alpha soft masks efter behov
Vektorpaths
Rektangler bruger native PDF rektangel-paths, linjer bevarer skråstreg eller backslash-hældning, og elliptiske buer bruger kubiske segmenter på højst 90 grader
Den første effektive edge leverer RGB stroke-farve og -tykkelse, inklusive underpoint-bredder; stroke appearance-beggrundskanter inkluderer halv tykkelse, så formen ikke clipper sin egen kant
Buer forbruger startAngle og signed sweepAngle med en standard fuld omdrejning og maksimal absolut sweep på 360 grader
Draw rotation-, skala- og translationshints anvendes én gang i en finitær affin placering omkring draw-centret med mod uret positiv rotation; top-venstre XFA-koordinater konverteres én gang til den native PDF-origin
PNG og JPEG
| Format | Faktisk native forbrug |
|---|---|
| PNG grayscale | 1, 2, 4, 8 og 16-bit samples, hvor pakkede samples udvides til 8 bits, og 16-bit præcision beholdes |
| PNG RGB | 8- og 16-bit farvesamples |
| PNG indexed color | 1, 2, 4 og 8-bit indeks udvidet gennem paletten til RGB-samples |
| PNG transparency | Grayscale- og RGB-transparente samples, palette-alpha samt 8- eller 16-bit grayscale-alpha og RGBA; rigtige /SMask-streams bevarer alpha-præcision |
| PNG filtering og interlace | Alle fem PNG rækkefiltre og Adam7-gennemløb valideret gennem de delte native zlib- og predictor-implementeringer |
| JPEG | 8-bit baseline og progressiv grayscale, RGB- og CMYK-frames valideret med den delte native JPEG-dekoder, før den originale /DCTDecode-stream bevares |
PNG chunk-kontrolsummen, rækkefølge, dimensioner, paletteindeks, transparente sample-intervaller og eksakt dekomprimeret længde tjekkes, før en kandidat committeres; afklippet eller overskydende komprimeret data fejler forberedelsen
JPEG frame-dimensioner skal være enige med rigtig native dekodning, og Adobe CMYK-inversion erklæres eksplicit i billed dictionaryen
JPEG kræver den eksisterende native TurboJPEG-runtime; HOTPDF_TURBOJPEG_LIBRARY kan identificere en absolut bibliotekssti med afhængige biblioteker fundet af operativsystemet
Billedaspekt understøtter fit, none, width, height og actual; PNG pHYs og JPEG JFIF-tæthed bestemmer fysisk pixelstørrelse med 96 dpi brugt, når der ikke findes en brugbar tæthed
Skalerede billeder centreres og clips til XFA draw-rektanglet; alpha-komposition forbliver en native PDF-reader-operation
Grænser og transaktion
Encodede billedbytes, dekodede arbejdsbuffere og rå billed- eller alphastreams er afgrænsede inden allokering; native objektgrænser samt samlede billed- og fontstream-grænser forbliver aktive
Cancellation tjekkes under parsing af chunkser, inflating af data, dekodning af rækker og placering af native objekter; den eksisterende native JPEG-dekoder modtager kalder-tokenet
Forberedelsesfejl bevarer destinationsposition, længde og bytes; den endelige destinations WriteBuffer følger kalder-streamens egen I/O-semantik
Aktuelle grænser
Udfyldte former, hjørnestyling, kant-specifikke kanter, stregmønstre, stregkoder, ekstern billedtransport, imageEdit-widgets, alternative billedformater, indlejrede farveprofiler og Exif-orientering kræver stadig yderligere consumer-integration
Animeret PNG forbruges som sit default statiske billede; fremmed XML exData forbliver en separat feature, og denne draw-adapter afvikler ikke vilkårlige indlejrede objekter
Accept
Tests/Linux/Build-XFAHeadlessGraphicFixtures.py producerer deterministiske rækkefilter-, Adam7-, sample-præcisions-, gennemsigtigheds-, fysisk-aspekt-, JPEG- og misdannede protokol-fixtures
Tests/Linux/XFAHeadlessGraphicsTests.pas skriver og genåbner rigtige native PDF'er og verificerer kalder-bevaring ved fejl; Verify-XFAHeadlessGraphics.py tjekker uafhængigt dekodede billedsamples, /SMask-præcision, vektoroperatorer, placering og renderede pixels med pypdf og MuPDF
Automatisk XFA native PDF-oprettelse beskriver de eksisterende felt- og tekst-consumers samt de public options- og resultat-API'er