Automatisk nativ XFA-grafik och bilder
Enhet: HPDFXFAHeadless
HPDFXFAWriteHeadlessPDF konsumerar draw-callbacks för rektangel, linje, båge och inline-bild direkt från XDP, vid sidan av de befintliga konsumenterna för text och widgetar
Varje draw producerar ett nativt Form-XObject placerat på den faktiska layoutsidan; bilddraws innehåller verkliga Image-XObjects och alfa-soft-masker när det behövs
Vektorsökvägar
Rektanglar använder nativa PDF-rektangelsökvägar, linjer bevarar slash- eller backslashlutning, och elliptiska bågar använder kubiska segment på högst 90 grader
Den första effektiva kanten ger RGB-strokefärg och tjocklek, inklusive bredder under en punkt; stroke-appearancens gränser omfattar halva tjockleken så att formen inte beskär sin egen kant
Bågar konsumerar startAngle och signerad sweepAngle, med ett helt varv som standard och maximalt absolut svep på 360 grader
Rotation, skalning och translations-hints för en draw tillämpas en gång i en ändlig affin placering kring drawns centrum, med moturs positiv rotation; XFA:s övre-vänster-koordinater konverteras en gång till PDF:ens nativa origo
PNG och JPEG
| Format | Faktisk nativ konsumtion |
|---|---|
| PNG-gråskala | 1-, 2-, 4-, 8- och 16-bitars sampel, där packade sampel expanderas till 8 bitar och 16-bitars precision behålls |
| PNG RGB | 8- och 16-bitars färgsampel |
| PNG indexerad färg | 1-, 2-, 4- och 8-bitars index expanderade via paletten till RGB-sampel |
| PNG-transparens | Transparenta gråskala- och RGB-sampel, palettalfa samt 8- eller 16-bitars gråskala-alfa och RGBA; faktiska /SMask-strömmar bevarar alfaprecision |
| PNG-filter och interlace | Alla fem PNG-radfilterna och Adam7-passer, validerade via de delade nativa implementeringarna av zlib och predictor |
| JPEG | 8-bitars baseline och progressiva gråskala-, RGB- och CMYK-ramar, validerade med den delade nativa JPEG-avkodaren innan den ursprungliga /DCTDecode-strömmen bevaras |
PNG-chunkchecksummor, ordning, dimensioner, palettindex, transparenta sampelintervall och exakt dekomprimerad längd kontrolleras innan en kandidat committas; trunkerad eller överskjutande komprimerad data misslyckar förberedelsen
JPEG-ramens dimensioner måste stämma med verklig nativ avkodning, och Adobes CMYK-inversion deklareras explicit i bildordboken
JPEG kräver den befintliga nativa TurboJPEG-runtimen; HOTPDF_TURBOJPEG_LIBRARY kan ange en absolut bibliotekssökväg, där beroende bibliotek kan hittas av operativsystemet
Bildproportioner stöder fit, none, width, height och actual; PNG pHYs och JPEG JFIF-densitet bestämmer fysisk pixelstorlek, med 96 dpi som används när ingen användbar densitet finns
Skalade bilder centreras och beskärs till XFA-drawrektangeln; alfasammansättning förblir en operation hos den nativa PDF-läsaren
Gränser och transaktion
Kodade bildbytes, avkodade arbetsbuffertar samt råa bild- eller alfaströmmar begränsas före allokering; nativa objektgränser och sammanlagda gränser för bild- och teckensnittsströmmar är fortsatt aktiva
Avbrott kontrolleras under chunk-parsning, inflating av data, radavkodning och placering av nativa objekt; den befintliga nativa JPEG-avkodaren får anroparens token
Förberedelsefel bevarar målets position, längd och bytes; den slutliga WriteBuffer till målet följer anroparströmmens egna IO-semantik
Aktuella gränser
Fyllda former, hörnstilning, kantspecifika ramar, dash-mönster, streckkoder, extern bildtransport, imageEdit-widgetar, alternativa bildformat, inbäddade färgprofiler och Exif-orientering kräver fortfarande ytterligare konsumentintegrering
Animerad PNG konsumeras som sin statiska standardbild; främmande XML i exData är en separat funktion, och denna draw-adapter kör inte godtyckliga inbäddade objekt
Godkännande
Tests/Linux/Build-XFAHeadlessGraphicFixtures.py producerar deterministiska fixture för radfilter, Adam7, sampelprecision, transparens, fysiska proportioner, JPEG samt felaktiga protokoll
Tests/Linux/XFAHeadlessGraphicsTests.pas skriver och öppnar faktiska nativa PDF:er igen och verifierar att anropare bevaras vid fel; Verify-XFAHeadlessGraphics.py kontrollerar oberoende avkodade bildsampel, /SMask-precision, vektoroperatorer, placering och renderade pixlar med pypdf och MuPDF
Automatisk nativ XFA PDF-skapning beskriver de befintliga konsumenterna för fält och text samt de publika options- och result-API:erna