Automatic XFA native PDF creation
Unit: HPDFXFAHeadless
HPDFXFAWriteHeadlessPDF creëert een verse native PDF rechtstreeks vanuit XDP-bytes en een door de applicatie geleverd TrueType-font, zonder invoer-PDF of voorbereide veldslots
De adapter consumeert de bestaande XFA-binding-, herhaalde-instance- en paginerings-layout-callbacks en bouwt native pagina- en AcroForm-objectgrafen met echte embedded-font-appearance-streams
Tekst-, numerieke, datum- en password-velden, pushbuttons, combo- en lijst-choices, checkbox- en radiogroepen, statische tekst-, rechthoek-, lijn-, boog- en inline PNG- of JPEG-image-draws worden geconsumeerd; signatures en extra draw-consumers vragen verdere adapter-integratie
Choice and boolean creation behoudt aparte display- en exportwaarden, editable- en multi-select-gedrag, native appearance-statussen en onafhankelijke herhaalde radiogroepen
Boolean styles and captions consumeert echte vector-markeringen, grootte, outline-kleuren en -dikte, Unicode-caption-regio's en derde checkbox-statussen
Native graphics and images consumeert echte vector-paden, PNG-sample-formaten en transparantie, baseline- of progressive JPEG, fysieke aspect en affiene plaatsing
Wachtwoorden gebruiken een gemaskeerde appearance terwijl de native veldwaarde behouden blijft; document-breed Editable en effectieve XFA readOnly-toegang bepalen native veldvlaggen
XFA-puntcoördinaten gebruiken een top-left-oorsprong en worden één keer geconverteerd naar native widget-rechthoeken en draw-vertalingen; aparte herhaalde occurrences ontvangen distincte native veldnamen vanuit de layout-engine
Native /AP-, /DR- en /DA-resources worden gegenereerd met het meegeleverde font en effectieve grootte, kleur en uitlijning; het meegeleverde face wordt voor elk veld gebruikt, dus typeface-selectie en meerdere stijlfaces zijn applicatieverantwoordelijkheden in deze fase
Gebruik TXFAWidgetRuntime om lifecycle- of interactie-events uit te voeren en de resulterende XDP op te slaan vóór creatie wanneer het document die events nodig heeft; de ScriptOptions van de adapter sturen de calculate- en validate-verwerking van de flatten-engine
Preparatie en limieten
TXFAHeadlessPDFOptions klemt XDP- en fontbytes, uitvoer- en objectbytes, object- en pagina-aantallen, velden en geaggregeerde UTF-16-glyph-units af
Object-, pagina- en glyphbudgetten worden gecheckt vóór de bijbehorende allocaties; embedding-checks begrenzen geaggregeerde font- en image-streams, image-decoders begrenzen diens working-buffers, en native serialisatie handhaaft object- en complete candidate-byte-limieten
Annulering wordt gecheckt gedurende graafcreatie, appearance-generatie en serialisatie; alle preparatiefalen laten de positie, lengte en bestaande bytes van de destination-stream ongewijzigd
De complete candidate wordt in geheugen voorbereid vóór één WriteBuffer-aanroep naar de destination; destination-I/O-fouten propagateren en kunnen partiele writes achterlaten volgens het stream-gedrag van de aanroeper
De uitvoer is een nieuw niet-getekend document; het behouden van geïmporteerde encryptie, bestaande signatures en bronrevisies hoort bij de native document-import- en revisie-API's
Acceptatie
Tests/Linux/XFAHeadlessCreationTests.pas produceert echte herhaalde, gepagineerde en document-breed read-only documenten, een event-gemuteerd opgeslagen-XDP-document en een gestijld Unicode-draw-document zonder een reader-UI te openen
Tests/Linux/Verify-XFAHeadlessCreation.py verifieert onafhankelijk native waarden, veldvlaggen, pagina-eigendom, /AP- en embedded font-resources met pypdf, en echte tekst en gerenderde appearance-pixels met MuPDF
Tests/Linux/XFAHeadlessChoiceTests.pas en Verify-XFAHeadlessChoice.py voegen echte choice-waarden en -vlaggen, radio-ouders en herhaalde scope-identiteiten, gereserveerde export-statussen, runtime save/reload en rollback en gerenderde selectie-pixels toe
TXFAHeadlessPDFResult rapporteert de echte native graaf- en serialisatie-aantallen