Grafica e immagini native XFA automatiche

Unit: HPDFXFAHeadless

HPDFXFAWriteHeadlessPDF consuma direttamente le callback draw rectangle, line, arc e immagini inline da XDP, accanto ai consumatori esistenti di testo e widget

Ogni draw produce un Form XObject nativo posizionato sulla pagina di layout reale; i draw di immagini contengono Image XObjects reali e soft mask alpha quando necessario

Tracciati vettoriali

I rettangoli usano tracciati rettangolo PDF nativi, le linee preservano la pendenza slash o backslash, e gli archi ellittici usano segmenti cubici di al massimo 90 gradi

Il primo edge effettivo fornisce colore RGB e spessore dello stroke, incluse larghezze sotto il punto; i confini dell'aspetto dello stroke includono metà dello spessore così il form non ritaglia il proprio bordo

Gli archi consumano startAngle e sweepAngle con segno, con un giro completo di default e uno sweep assoluto massimo di 360 gradi

Gli hint di rotazione, scala e traslazione dei draw vengono applicati una volta in un posizionamento affine finito attorno al centro del draw, con rotazione positiva antioraria; le coordinate XFA alto-sinistra vengono convertite una volta nell'origine PDF nativa

PNG e JPEG

FormatoConsumo nativo reale
PNG grayscalecampioni a 1, 2, 4, 8 e 16 bit, con campioni packed espansi a 8 bit e precisione a 16 bit conservata
PNG RGBcampioni colore a 8 e 16 bit
PNG indexed colorindici a 1, 2, 4 e 8 bit espansi attraverso la palette in campioni RGB
PNG transparencycampioni trasparenti grayscale e RGB, alpha di palette, e grayscale-alpha e RGBA a 8 o 16 bit; gli stream /SMask reali preservano la precisione alpha
PNG filtering e interlacetutti e cinque i filtri di riga PNG e i pass Adam7, validati attraverso le implementazioni native condivise di zlib e predictor
JPEGframe grayscale, RGB e CMYK baseline e progressivi a 8 bit, validati con il decoder JPEG nativo condiviso prima di conservare lo stream /DCTDecode originale

Checksum dei chunk PNG, ordinamento, dimensioni, indici di palette, intervalli di campioni trasparenti e lunghezza esatta decompressa vengono controllati prima di committare un candidato; dati compressi troncati o in eccesso fanno fallire la preparazione

Le dimensioni dei frame JPEG devono corrispondere alla decodifica nativa reale, e l'inversione CMYK Adobe viene dichiarata esplicitamente nel dizionario immagine

JPEG richiede il runtime TurboJPEG nativo esistente; HOTPDF_TURBOJPEG_LIBRARY può identificare un percorso assoluto di libreria, con le librerie dipendenti individuabili dal sistema operativo

L'aspetto delle immagini supporta fit, none, width, height e actual; pHYs PNG e densità JFIF JPEG determinano la dimensione fisica dei pixel, con 96 dpi usati quando non esiste densità utilizzabile

Le immagini scalate vengono centrate e ritagliate sul rettangolo draw XFA; la composizione alpha resta un'operazione del reader PDF nativo

Limiti e transazione

Byte immagini codificati, buffer di lavoro decodificati e stream raw di immagini o alpha sono delimitati prima dell'allocazione; i limiti nativi sugli oggetti e i limiti aggregati su stream immagini e font restano attivi

La cancellazione viene controllata durante il parsing dei chunk, l'inflazione dei dati, la decodifica delle righe e il posizionamento degli oggetti nativi; il decoder JPEG nativo esistente riceve il token del chiamante

I fallimenti di preparazione preservano posizione, lunghezza e byte della destinazione; il WriteBuffer finale sulla destinazione segue la semantica I/O propria dello stream del chiamante

Confini attuali

Forme riempite, stile degli angoli, bordi specifici per lato, pattern tratteggiati, barcode, transport esterno di immagini, widget imageEdit, formati immagine alternativi, profili colore incorporati e orientamento Exif richiedono ancora integrazione aggiuntiva dei consumatori

Il PNG animato viene consumato come sua immagine statica predefinita; l'exData XML straniero resta una funzionalità separata, e questo adattatore draw non esegue oggetti incorporati arbitrari

Collaudo

Tests/Linux/Build-XFAHeadlessGraphicFixtures.py produce fixture deterministiche di filtri di riga, Adam7, precisione dei campioni, trasparenza, aspetto fisico, JPEG e protocolli malformati

Tests/Linux/XFAHeadlessGraphicsTests.pas scrive e riapre PDF nativi reali e verifica la preservazione per il chiamante sui fallimenti; Verify-XFAHeadlessGraphics.py controlla in modo indipendente campioni immagine decodificati, precisione /SMask, operatori vettoriali, posizionamento e pixel renderizzati con pypdf e MuPDF

Creazione automatica di PDF nativi da XFA descrive i consumatori esistenti di campi e testo e le API pubbliche di opzioni e result