Windows FDF/XFDF Exchange
Windows file-jobs en hpdf_document_execute_json_v1 implementeren forms.export en forms.import voor fdf en xfdf met de native scalar- en begrensde rich XHTML/CSS-codecs
File-jobs
{
"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 gebruikt input, output, format en optioneel wachtwoord; hij vraagt geen formDataInput of fonts; file-jobs reserveren een exclusieve candidate naast de target, flußen en sluiten die, valideren begrensde resultaat-JSON en vervangen daarna de target atomair
Ontbrekende fonts, misvormde invoer, authenticatie- of policy-falen, uitgeputte limieten en gefaalde publicatie behouden de bestaande complete target; uitvoer mag niet aliasen met de PDF- of form-data-invoer, inclusief een hard link
Benoemde fontfamilies
forms.import accepteert fontFamilies op de operatie-wortel als een array van één tot zestien labels; afwezigheid behoudt het originele single-family-profiel en fontFamily-callback-label
"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"
}
}
Voor file-jobs bevat fonts objecten gekeyd op de exact geconfigureerde labels; zonder fontFamilies behoudt hij het originele directe stijlpad-object; lees alleen echte family/stijl-programma's, met alle gekozen fontbytes die het operation-budget delen
Voor Windows V1-callbacks ontvangt de bestaande font-callback elk echt canoniek UTF-8 geconfigureerd label en gekozen stijl; twee families met alle vier de stijlen leveren acht echte programma-requests op zonder het callback-record te veranderen
ASCII-labelletters vergelijken zonder case terwijl andere Unicode-tekens exact vergelijken; labels zijn distinct, niet-leeg en hoogstens 128 UTF-16-code-units, zonder omringende whitespace, controls, ongepaarde surrogaten of CSS quote/separator-punctuatie
De eerst geconfigureerde family is de default voor scalar-tekst en geërfde rich-stijlen; standaard gebruiken CSS font-family-lijsten de first-known-family-selectie van de native codec
Opt-in fallbackFontFamilies=true behoudt geordende inline CSS font-family-candidates en laadt echte geconfigureerde face/stijl-programma's voor whole-grapheme-fallback; zie Windows supplied-family rich font fallback voor getypeerde candidates, callback loading en het rich-only-bereik
Het toegepaste resultaat rapporteert richXMLProfile inline-xhtml-font-families-v1, de geconfigureerde fontFamilies-array en echte fontFamilyStyles-objecten met family, stijl en bytes; fontStyles houdt diens originele object-array-type en vat byte-aantallen per stijl samen; fontBytes telt alle echte programma's
Zonder de array is richXMLProfile inline-xhtml-v1; gemengde scalar- en originele typed-rich forms.fill gebruikt de aparte original-typed-runs-v1-binding die hieronder wordt beschreven; de oudere job-font-callback-extensie blijft apart vervolgwerk
Versioned Windows C-callbacks
Include hotpdf_abi_form_data.h; vul hpdf_form_data_operation_v1, zet operation.struct_size op diens complete grootte en geef diens ongewijzigde operation-prefix door aan hpdf_document_execute_json_v1
De optionele font-callback ontvangt UTF-8-family-bytes en stijl 0 regular, 1 bold, 2 italic of 3 boldItalic, en geeft een complete hpdf_io_v1 read-tabel terug voor het echte fontprogramma; lever alle vier de programma's aan wanneer rich-data alle vier de stijlen gebruikt
Scalar-data vraagt het regular-programma; fontFamily defaultt naar DejaVu Sans; meegeleverde font-IO-callbacks en user data moeten geldig blijven tot de operatie terugkeert; niet-nul callback-statussen zijn sticky en worden gepropageerd zonder fallback-retry
Voor forms.import levert InputIO FDF/XFDF aan en moet de destination al geladen zijn; OutputIO ontvangt de candidate-PDF en ResultIO begrensde JSON; forms.export gebruikt het originele V1-record en schrijft FDF/XFDF naar OutputIO
Windows hpdf_document_load_from_io kopieert de complete invoer naar een immutable owned bron vóór terugkeer; vervanging of aanvulling door de aanroeper kan de actieve geladen revisie of diens latere form-data-uitvoer niet wijzigen
Owned bronnen gebruiken een apart gesynchroniseerd handle voor achtergrond random reads, dus prefetch kan de sequentiële publicatiecursor niet verplaatsen; het candidate-document geeft diens achtergrond-readers vrij voordat diens bron wordt vernietigd
De actieve context verandert pas nadat zowel output- als result-callbacks slagen en het finale annuleringscheckpoint haalt; callback-falen of annulering gooit de candidate weg en behoudt het vorige document en de owned bron
Een callback kan candidate-bytes hebben ontvangen vóór een latere callback faalt; aanroepers moeten diens eigen uitvoer-destination pas committen nadat de execute-functie HPDF_STATUS_OK teruggeeft
De originele V1-record-layouts en geëxporteerde symbolen zijn ongewijzigd; deze Windows-extensie staat los van de gepubliceerde callback-extensie van native Linux
De gebonden entrypoints zijn de file job processor en hpdf_document_execute_json_v1; het oudere HPDFDocRunJob-callback-record en generieke ExecuteLoadedOperation verkrijgen geen font-extensie in deze fase; Pascal-aanroepers kunnen de expliciete transaction class gebruiken
Velden, rich text en beleid
Ondersteunde waarden omvatten nested Unicode-tekstnamen, checkbox- en radio-exportnamen, multiselect-arrays en ongewijzigde read-only-waarden; /V, /RV en echte AP-resources worden samen opgeslagen; onbekende velden en vereiste veldconstraints laten de transactie falen
Rich-interchange gebruikt het gedocumenteerde begrensde XHTML/CSS-profiel en echte supplied stijlfonts; hij claimt geen willekeurige HTML, alle CSS of onbeperkte rich-XML-ondersteuning
Getekende AES R5/R6-updates behouden de complete originele prefix, encryptieparameters, permanente encryptie-identificator en bestaande CMS-signature; ongewijzigde scalar- of rich-imports zijn byte-identiek aan de huidige gecommitte revisie
Bestaande CMS-integriteit en ESS-signer-binding worden geauthenticeerd vóór signed formulier-updates; P2/P3-invullen is alleen toegestaan binnen diens echte constraints; P1, FieldMDP-locks en gewijzigde read-only-velden weigeren publicatie
signaturePolicy accepteert Boolean requireCAdES, requireTimestamp, requireAdobeRevocationInfo en requireTimestampRevocation; trustedCAFile, timestampCAFile, timestampCRLFile en revocationCAFile moeten strings zonder NUL zijn en kiezen expliciete caller-trust voor de gevraagde checks
C callback-options begrenzen signed bewijs daarnaast via maxEvidenceBytes en maxEvidenceObjects; trust-validatie is distinct van de default signature-integriteitscheck
formData kan maxBytes, maxFields, maxObjects, maxDepth, maxValues, maxValueCodeUnits en maxTotalCodeUnits verlagen; deze exacte positieve integers worden daarnaast afgeklemd door de working-capaciteit; budget objectCount en pageCount begrenzen candidate-documenten
budget.timeMilliseconds zet de operation-deadline; Windows C-callbacks accepteren ook elapsedMilliseconds als extra strakkere grens; annulering wordt gepolld tijdens huidige graaf-preparatie, formulier-decodering, font-lezen, CMS-checks, candidate-loading en publicatie
Capabilities rapporteren echte formaten, stijlen, immutable invoer en transactioneel callback-gedrag; mapped annotation XFDF-uitwisseling wordt apart geïmplementeerd, terwijl embedded FDF-bestanden, bredere actions en incrementele FDF-documenten onafgemaakt blijven
Verwante topics
Mixed scalar and original typed rich filling gebruikt dezelfde geauthenticeerde Windows-candidate-levenscyclus via file-jobs en execute-json-v1
Transaction class, Current graph preparation, Native form data
Internal style sheets passen begrensde selectors, importance, specificity en bronvolgorde toe op echt geïmporteerde rich-waarden en opgeslagen appearances; herhaalde equivalente imports en gefaalde publicatie behouden de bestaande transactiegaranties
richTextResources levert gelinkte en geïmporteerde CSS voor echte Windows file-jobs en execute-json-v1-imports, met de bestaande transactie- en font-bindingen