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

FormatFaktisk nativ konsumtion
PNG-gråskala1-, 2-, 4-, 8- och 16-bitars sampel, där packade sampel expanderas till 8 bitar och 16-bitars precision behålls
PNG RGB8- och 16-bitars färgsampel
PNG indexerad färg1-, 2-, 4- och 8-bitars index expanderade via paletten till RGB-sampel
PNG-transparensTransparenta 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 interlaceAlla fem PNG-radfilterna och Adam7-passer, validerade via de delade nativa implementeringarna av zlib och predictor
JPEG8-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