Windows FDF/XFDF-utbyte
Windows-filjobb och hpdf_document_execute_json_v1 implementerar forms.export och forms.import för fdf och xfdf med native codec:er för skalärdata och avgränsad rich XHTML/CSS
Filjobb
{
"schemaVersion": 1, "type": "forms.import", "format": "xfdf",
"input": "source.pdf", "output": "filled.pdf", "password": "owner",
"formDataInput": "values.xfdf",
"fonts": {
"regular": "DejaVuSans.ttf", "bold": "DejaVuSans-Bold.ttf",
"italic": "DejaVuSans-Oblique.ttf", "boldItalic": "DejaVuSans-BoldOblique.ttf"
},
"budget": {"memoryBytes": 268435456, "outputBytes": 134217728,
"timeMilliseconds": 60000, "resultBytes": 16777216}
}
forms.export använder input, output, format och valfritt password; det kräver inte formDataInput eller fonts; filjobb reserverar en exklusiv kandidat bredvid målet, spolar och stänger den, validerar avgränsad resultat-JSON och byter sedan målet atomärt
Saknade teckensnitt, felformad indata, autentiserings- eller policyfel, uttömda gränser och misslyckad publicering bevarar det befintliga kompletta målet; output får inte aliasa PDF:en eller formulärdataindatan, inte ens via en hårdlänk
Namngivna teckensnittsfamiljer
forms.import accepterar fontFamilies i operationsroten som en array med en till sexton etiketter; avsaknad behåller den ursprungliga enfamiljsprofilen och fontFamily-callbacketiketten
"fontFamilies": ["DejaVu Sans", "DejaVu Serif Condensed"],
"fonts": {
"DejaVu Sans": {
"regular": "DejaVuSans.ttf", "bold": "DejaVuSans-Bold.ttf",
"italic": "DejaVuSans-Oblique.ttf", "boldItalic": "DejaVuSans-BoldOblique.ttf"
},
"DejaVu Serif Condensed": {
"regular": "DejaVuSerifCondensed.ttf", "bold": "DejaVuSerifCondensed-Bold.ttf",
"italic": "DejaVuSerifCondensed-Italic.ttf", "boldItalic": "DejaVuSerifCondensed-BoldItalic.ttf"
}
}
För filjobb innehåller fonts objekt med de exakta konfigurerade etiketterna som nycklar; utan fontFamilies behålls det ursprungliga direkta stil-sökvägsobjektet; läs bara verkliga familje-/stilprogram, och alla valda fontbyte delar operationens budget
För Windows V1-callbacks tar det befintliga font-callbacket emot varje verklig kanonisk UTF-8-konfigurerad etikett och vald stil; två familjer som använder alla fyra stilar ger åtta verkliga programbegäranden utan att callbackposten ändras
ASCII-bokstäver i etiketter jämförs skiftlägesokänsligt medan andra Unicode-tecken jämförs exakt; etiketterna är distinkta, icke-tomma och högst 128 UTF-16-kodenheter, utan omgivande blanksteg, kontrolltecken, oparade surrogater eller CSS-citat-/avgränsartecken
Den första konfigurerade familjen är standard för skalärtext och ärvda rich-stilar; som standard använder CSS font-family-listor native-codec:ns val av första kända familj
Opt-in-flaggan fallbackFontFamilies=true bevarar ordnade inline CSS font-family-kandidater och läser in verkliga konfigurerade snitt-/stilprogram för helgrafem-fallback; se Windows rich-teckensnittsfallback med tillhandahållna familjer för typade kandidater, callback-inläsning och det omfång som bara gäller rich
Tillämpade resultatet redovisar richXMLProfile inline-xhtml-font-families-v1, den konfigurerade fontFamilies-arrayen och verkliga fontFamilyStyles-objekt med family, style och bytes; fontStyles behåller sin ursprungliga objektarraytyp och sammanfattar byteantal per stil; fontBytes räknar alla verkliga program
Utan arrayen är richXMLProfile inline-xhtml-v1; blandad skalär och original typed-rich forms.fill använder den separata original-typed-runs-v1-bindningen som beskrivs nedan; den äldre font-callback-utökningen för jobb förblir separat fortsättningsarbete
Versionshanterade Windows C-callbacks
Inkludera hotpdf_abi_form_data.h; fyll i hpdf_form_data_operation_v1, sätt operation.struct_size till dess fullständiga storlek och skicka dess oförändrade operationsprefix till hpdf_document_execute_json_v1
Det valfria font-callbacket tar emot UTF-8-familjebyte och stil 0 regular, 1 bold, 2 italic eller 3 boldItalic, och returnerar en komplett hpdf_io_v1-lästabell för det verkliga teckensnittsprogrammet; tillhandahåll alla fyra program när rich-data använder alla fyra stilar
Skalärdata begär programmet för den raka snitten; fontFamily blir DejaVu Sans som standard; tillhandahållna font-IO-callbacks och användardata måste förbli giltiga tills operationen returnerar; callbackstatusar skilda från noll fastnar och propageras utan återförsök med reservalternativ
För forms.import tillhandahåller InputIO FDF/XFDF och destinationen måste redan vara laddad; OutputIO tar emot kandidat-PDF:en och ResultIO tar emot avgränsad JSON; forms.export använder den ursprungliga V1-posten och skriver FDF/XFDF till OutputIO
Windows hpdf_document_load_from_io kopierar hela indatan till en oföränderlig egen källa innan den returnerar; anroparens ersättning eller tillägg kan inte ändra den aktiva laddade revisionen eller dess senare formulärdatautdata
Egna källor använder ett separat synkroniserat handle för slumpmässiga bakgrundsläsningar, så att prefetch inte kan flytta den sekventiella publiceringsmarkören; kandidatdokumentet släpper sina bakgrundsläsare innan källan förstörs
Den aktiva kontexten ändras först när både utdata- och resultatcallbacks lyckats och den sista avbrottskontrollpunkten passerats; callbackfel eller avbrott kastar kandidaten och behåller det tidigare dokumentet och den egna källan
En callback kan ha tagit emot kandidatbyte innan en senare callback misslyckas; anropare får verkställa sin egen utdatadestination först när exekveringsfunktionen har returnerat HPDF_STATUS_OK
De ursprungliga V1-postlayouterna och exporterade symbolerna är oförändrade; denna Windows-utökning är skild från native Linux:s publicerade callback-utökning
De bundna ingångspunkterna är filjobbsprocessorn och hpdf_document_execute_json_v1; den äldre HPDFDocRunJob-callbackposten och generiska ExecuteLoadedOperation får ingen font-utökning i detta skede; Pascal-anropare kan använda den explicita transaktionsklassen
Fält, rich text och policy
Stödda värden omfattar nästlade Unicode-textnamn, exportnamn för checkbox och radio, multiselect-arrayer och oförändrade read-only-värden; /V, /RV och äkta AP-resurser sparas tillsammans; okända fält och obligatoriska fältvillkor misslyckas i transaktionen
Rich-utbyte använder den dokumenterade avgränsade XHTML/CSS-profilen och verkliga tillhandahållna stilateckensnitt; den gör inte anspråk på godtycklig HTML, all CSS eller obegränsat rich XML-stöd
Signerade AES R5/R6-uppdateringar behåller hela det ursprungliga prefixet, krypteringsparametrar, permanent krypteringsidentifierare och befintlig CMS-signatur; oförändrade skalära eller rich-importer är byteidentiska med den aktuella genomförda revisionen
Befintlig CMS-integritet och ESS-signerarkoppling autentiseras före signerade formulärsuppdateringar; P2/P3-ifyllning tillåts bara inom dess verkliga begränsningar; P1, FieldMDP-lås och ändrade read-only-fält vägrar publicera
signaturePolicy accepterar de booleska requireCAdES, requireTimestamp, requireAdobeRevocationInfo och requireTimestampRevocation; trustedCAFile, timestampCAFile, timestampCRLFile och revocationCAFile måste vara strängar utan NUL och väljer explicit anropartillit för de begärda kontrollerna
C-callback-alternativen begränsar också signerade belägg via maxEvidenceBytes och maxEvidenceObjects; tillitsvalidering skiljer sig från standardkontrollen av signaturintegritet
formData kan sänka maxBytes, maxFields, maxObjects, maxDepth, maxValues, maxValueCodeUnits och maxTotalCodeUnits; dessa exakta positiva heltal kläms dessutom av arbetskapaciteten; budgetens objectCount och pageCount begränsar kandidatdokument
budget.timeMilliseconds sätter operationens deadline; Windows C-callbacks accepterar också elapsedMilliseconds som en ytterligare snävare gräns; avbrott pollas under förberedelse av aktuell graf, formuläravkodning, teckensnittsläsning, CMS-kontroller, kandidatinläsning och publicering
Kapacitetsrapporten redovisar verkliga format, stilar, oföränderlig indata och transaktionellt callbackbeteende; mappat annoterings-XFDF-utbyte är implementerat separat, medan inbäddade FDF-filer, bredare actions och inkrementella FDF-dokument fortfarande saknas
Relaterade ämnen
Blandad skalär och original typad rich-ifyllning använder samma autentiserade Windows-kandidatlivscykel via filjobb och execute-json-v1
Transaktionsklass, Förberedelse av aktuell graf, Native-formulärdata
Interna stilmallar tillämpar avgränsade selektorer, vikt, specificitet och källordning på faktiskt importerade rich-värden och sparade utseenden; upprepade ekvivalenta importer och misslyckad publicering behåller de befintliga transaktionsgarantierna
richTextResources tillhandahåller länkad och importerad CSS för faktiska Windows-filjobb och execute-json-v1-importer, med den befintliga transaktionen och typsnittsbindningarna