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