Automatic XFA native PDF creation
Enheten är HPDFXFAHeadless
HPDFXFAWriteHeadlessPDF skapar en färsk nativ PDF direkt ur XDP-byte och ett applikationstillhandahållet TrueType-typsnitt, utan in-PDF eller förberedda fältplatser
Adaptern konsumerar de befintliga XFA-bindnings-, upprepningsinstans- och pagineringslayoutåteranropen och bygger nativa sid- och AcroForm-objektgrafer med verkliga inbäddat-typsnitt-utseendeströmmar
Text-, numeriska, datum- och lösenordsfält, tryckknappar, combo- och listval, checkbox- och radiogrupper, statisk text, rektangel-, linje-, båg- och inline PNG- eller JPEG-bildritningar konsumeras; signaturer och ytterligare ritkonsumenter kräver vidare adapterintegrering
Choice- och Boolean-skapande bevarar separata visnings- och exportvärden, redigerbart och flervalsbeteende, nativa utseendetillstånd och oberoende upprepade radiogrupper
Boolean-stilar och rubriker konsumerar faktiska vektormärken, storlek, konturfärger och tjocklek, Unicode-rubrikregioner och tredje checkbox-tillstånd
Nativ grafik och bilder konsumerar faktiska vektorsökvägar, PNG-sampelformat och transparens, baseline- eller progressiv JPEG, fysisk aspekt och affin placering
Lösenord använder ett maskerat utseende samtidigt som det nativa fältvärdet behålls; dokumentvid Editable och effektiv XFA readOnly-åtkomst bestämmer nativa fältflaggor
XFA-punktkoordinater använder topp-vänster-ursprung och konverteras en gång till nativa widgetrektanglar och ritöversättningar; separata upprepade förekomster får distinkta nativa fältnamn från layoutmotorn
Nativa /AP-, /DR- och /DA-resurser genereras med det tillhandahållna typsnittet och effektiv storlek, färg och justering; det tillhandahållna ansiktet används för varje fält, så typsnittsansiktets selektion och multipla stilsansikten är applikationens ansvar i detta stadium
Använd TXFAWidgetRuntime för att köra livscykel- eller interaktionshändelser och spara den resulterande XDP:n före skapandet när dokumentet kräver de händelserna; adapterns ScriptOptions styr plattningsmotorns calculate- och validate-bearbetning
Förberedelse och gränser
TXFAHeadlessPDFOptions begränsar XDP- och typsnittsbyte, utdata- och objektbyte, objekt- och sidantal, fält och samlade UTF-16-glyfenheter
Objekt-, sid- och glyfbudgetar kontrolleras före sina motsvarande allokeringar; inbäddningskontroller begränsar samlade typsnitts- och bildströmmar, bildavkodare begränsar sina arbetsbuffertar, och nativ serialisering tillämpar objekt- och completa kandidatbytegränser
Avbrott kontrolleras genom hela grafskapandet, utseendegenerering och serialisering; alla förberedelsefel lämnar destinationsströmmens position, längd och befintliga byte oförändrade
Den completa kandidaten förbereds i minnet före ett enda WriteBuffer-anrop till destinationen; destinations-I/O-fel sprids och kan lämna partiella skrivningar enligt anroparens strömbeteende
Utdatan är ett nytt osignerat dokument; att bevara importerad kryptering, befintliga signaturer och källrevisioner tillhör de nativa dokumentimport- och revisions-API:erna
Acceptans
Tests/Linux/XFAHeadlessCreationTests.pas producerar faktiska upprepade, paginerade och globalt skrivskyddade dokument, ett händelsemuterat sparad-XDP-dokument och ett stiliserat Unicode-ritningsdokument utan att öppna en visar-UI
Tests/Linux/Verify-XFAHeadlessCreation.py verifierar oberoende nativa värden, fältflaggor, sideägarskap, /AP och inbäddade typsnittsresurser med pypdf, samt verklig text och renderade utseendepixlar med MuPDF
Tests/Linux/XFAHeadlessChoiceTests.pas och Verify-XFAHeadlessChoice.py lägger till faktiska choice-värden och flaggor, radioföräldrar och upprepad scope-identiteter, reserverade exporttillstånd, körtidssparande/omläsning och rullering samt renderade valspixlar
TXFAHeadlessPDFResult rapporterar de faktiska nativa graf- och serialiseringsräkningarna