Windows FDF/XFDF-udveksling
Windows file jobs og hpdf_document_execute_json_v1 implementerer forms.export og forms.import for fdf og xfdf med de native scalar- og afgrænsede 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 bruger input, output, format og valgfri adgangskode; det kræver ikke formDataInput eller fonts; file jobs reserverer en eksklusiv kandidat ved siden af target, flusher og lukker den, validerer afgrænset resultat-JSON og erstatter derefter target atomisk
Manglende fonts, misdannet input, autentifikations- eller politifejl, opbrugte grænser og mislykket publicering bevarer det eksisterende komplette target; output må ikke aliasere PDF- eller form-data-input, inklusive et hard link
Navngivne fontfamilier
forms.import accepterer fontFamilies ved operationsroden som et array på én til sekteen labels; fravær beholder den originale enkelt-familie-profil og fontFamily-callback-labelen
"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"
}
}
Til file jobs indeholder fonts objekter nøglet med de eksakte konfigurerede labels; uden fontFamilies beholder den originale direkte stil-sti-objekt; læs kun faktiske familie/style-programmer, med alle valgte font-bytes der deler operationsbudgettet
Til Windows V1-callbacks modtager den eksisterende font-callback hver faktisk kanonisk UTF-8 konfigureret label og valgt stil; to familier, der bruger alle fire styles, giver otte rigtige program-anmodninger uden at ændre callback-recorden
ASCII-label-bogstaver sammenlignes uden case, mens andre Unicode-tegn sammenlignes eksakt; labels er distinkte, ikke-tomme og højst 128 UTF-16 code units uden omgivende whitespace, kontroltegn, uparede surrogater eller CSS citat-/separator-tegnsætning
Den første konfigurerede familie er standard for scalar-tekst og nedarvede rich styles; som standard bruger CSS font-family-lister den native codecs første-kendte-familie-valg
Opt-in fallbackFontFamilies=true beholder ordnede inline CSS font-family-kandidater og indlæser faktiske konfigurerede face/style-programmer til hele-grapheme-fallback; se Windows leveret-familie rich font-fallback for typede kandidater, callback-indlæsning og rich-kun-omfanget
Det anvendte resultat rapporterer richXMLProfile inline-xhtml-font-families-v1, det konfigurerede fontFamilies-array og faktiske fontFamilyStyles-objekter indeholdende familie, stil og bytes; fontStyles beholder sin originale objekt-array-type og opsummerer byte-antal pr. stil; fontBytes tæller alle rigtige programmer
Uden arrayet er richXMLProfile inline-xhtml-v1; blandede scalar- og originale typed-rich forms.fill bruger den separate original-typed-runs-v1-binding beskrevet nedenfor; den ældre job font-callback-udvidelse forbliver separat opfølgningsarbejde
Versionerede Windows C-callbacks
Inkluder hotpdf_abi_form_data.h; udfyld hpdf_form_data_operation_v1, sæt operation.struct_size til dets komplette størrelse og send dets uændrede operationspræfiks til hpdf_document_execute_json_v1
Den valgfrie font-callback modtager UTF-8 familie-bytes og stil 0 regular, 1 bold, 2 italic eller 3 boldItalic og returnerer en komplet hpdf_io_v1-læsetabel for det faktiske fontprogram; lever alle fire programmer, når rich-data bruger alle fire styles
Scalar-data anmoder om regular-programmet; fontFamily er som standard DejaVu Sans; leverede font IO-callbacks og user data skal forblive gyldige, indtil operationen returnerer; nonzero callback-statusser er klæbende og propageres uden fallback-retry
Til forms.import leverer InputIO FDF/XFDF, og destinationen skal allerede være indlæst; OutputIO modtager kandidat-PDF'en, og ResultIO modtager afgrænset JSON; forms.export bruger den originale V1-record og skriver FDF/XFDF til OutputIO
Windows hpdf_document_load_from_io kopierer det komplette input til en uforanderlig ejet kilde inden returnering; kalder-erstatning eller -tilføjelse kan ikke ændre den aktive indlæste revision eller dens senere form-data-output
Ejede kilder bruger et separat synkroniseret handle til baggrunds random reads, så prefetch ikke kan flytte den sekventielle publiceringscursor; kandidatdokumentet frigiver sine baggrundsreaders, før dets kilde destrueres
Den aktive kontekst ændres først, efter at både output- og resultat-callbacks lykkes, og det endelige cancellation-checkpoint består; callback-fejl eller cancellation kasserer kandidaten og beholder det tidligere dokument og eede kilde
En callback kan have modtaget kandidat-bytes, før en senere callback fejler; kaldere skal committere egen output-destination først, efter at execute-funktionen returnerer HPDF_STATUS_OK
De originale V1 record-layouts og eksporterede symboler er uændret; denne Windows-udvidelse er separat fra native Linux' publicerede callback-udvidelse
De bundne indgangspunkter er file job-processoren og hpdf_document_execute_json_v1; den ældre HPDFDocRunJob callback-record og generiske ExecuteLoadedOperation erhverver ikke en font-udvidelse i denne fase; Pascal-kaldere kan bruge den eksplicitte transaktionsklasse
Felter, rich text og politik
Understøttede værdier inkluderer nestede Unicode tekstnavne, checkbox- og radio-exportnavne, multiselect-arrays og uændrede skrivebeskyttede værdier; /V, /RV og rigtige AP-ressourcer gemmes sammen; ukendte felter og krævede feltbegrænsninger fikser transaktionen
Rich-udveksling bruger den dokumenterede afgrænsede XHTML/CSS-profil og rigtige leverede style-fonte; den hævder ikke vilkårlig CSS-layout-understøttelse
Signerede AES R5/R6-opdateringer beholder det komplette originale præfiks, krypteringsparametre, permanente krypteringsidentifikatorer
Eksisterende CMS-integritet og ESS signer-binding autentificeres før signerede formularopdateringer; P2/P3-udfyldning er kun tilladt inden for dets faktiske begrænsninger; P1, FieldMDP-låse og ændrede skrivebeskyttede felter nægter publicering
signaturePolicy accepterer booleske requireCAdES, requireTimestamp, requireAdobeRevocationInfo og requireTimestampRevocation; trustedCAFile, timestampCAFile, timestampCRLFile og revocationCAFile skal være strenge uden NUL og vælger eksplicit kalder-trust for de anmodede tjek
C callback-options begrænser også signeret evidence gennem maxEvidenceBytes og maxEvidenceObjects; trust-validering er distinkt fra standard signaturintegritetstjek
formData kan sænke maxBytes, maxFields, maxObjects, maxDepth, maxValues, maxValueCodeUnits og maxTotalCodeUnits; disse eksakte positive heltal klemmes derudover af arbejdskapaciteten; budget objectCount og pageCount begrænser kandidatdokumenter
budget.timeMilliseconds sætter operationsfristen; Windows C-callbacks accepterer også elapsedMilliseconds som en yderligere strammere grænse; cancellation polles under aktuel graf-forberedelse, formular-dekodning, fontlæsning, CMS-tjek, kandidatindlæsning og publicering
Capabilities rapporterer faktiske formater, styles, uforanderligt input og transaktionel callback-adfærd; mapped annotation XFDF-udveksling er implementeret separat, mens indlejrede FDF-filer, bredere handlinger og inkrementelle FDF-dokumenter forbliver uafsluttede
Relaterede emner
Blandet scalar og original typed rich filling bruger samme autentificerede Windows-kandidat-livscyklus gennem file jobs og execute-json-v1
Transaktionsklasse, Aktuel graf-forberedelse, Native form data
Interne style sheets anvender afgrænsede selektorer, prioritet, specificitet og kilderækkefølge på rigtige importerede rich-værdier og gemte appearances; gentagne ækvivalente importer og mislykket publicering beholder de eksisterende transaktionsgarantier
richTextResources leverer linket og importeret CSS til rigtige Windows file jobs og execute-json-v1-importer med den eksisterende transaktion og fontbindinger