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
| Formato | Consumo nativo reale |
|---|---|
| PNG grayscale | campioni a 1, 2, 4, 8 e 16 bit, con campioni packed espansi a 8 bit e precisione a 16 bit conservata |
| PNG RGB | campioni colore a 8 e 16 bit |
| PNG indexed color | indici a 1, 2, 4 e 8 bit espansi attraverso la palette in campioni RGB |
| PNG transparency | campioni 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 interlace | tutti e cinque i filtri di riga PNG e i pass Adam7, validati attraverso le implementazioni native condivise di zlib e predictor |
| JPEG | frame 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