Windows original typed rich form filling

Windows file jobs og hpdf_document_execute_json_v1 accepterer forms.fill-anmodninger indeholdende richTextRuns sammen med almindelige tekst-, choice- og button-opdateringer; alle felter deler én autentificeret kandidat-PDF

De originale typede runs når den native appearance-komponist direkte; AP-generering rundturer ikke gennem den serialiserede RV-farverepræsentation; plain V, standard rich RV og faktisk AP forberedes sammen

Anmodning

{
  "schemaVersion": 1,
  "type": "forms.fill",
  "fontFamilies": ["DejaVu Sans", "DejaVu Serif Condensed"],
  "fields": [
    {"name": "Input", "richTextRuns": [
      {"text": "Original typed precision", "fontFamily": "DejaVu Sans",
       "fontStyle": "regular", "fontSize": 12.123456,
       "color": [0.123456, 0.234567, 0.345678]},
      {"text": "Another paragraph", "fontFamily": "DejaVu Serif Condensed",
       "fontStyle": "boldItalic", "fontSize": 14.125,
       "paragraphBreakBefore": true, "alignment": "center",
       "underline": true, "strikeOut": false}
    ]},
    {"name": "Plain", "value": "Changed scalar"},
    {"name": "Choice", "values": ["B", "C"]},
    {"name": "Check", "value": "Yes"}
  ]
}

Hvert felt leverer richTextRuns eller en scalar-værdi eller -værdier; en valgfri værdi ved siden af richTextRuns skal matche den nativt udledte plain-tekst eksakt, inklusive carriage returns mellem typede afsnit; serialiseret richText er ikke et typet-run-input

Hvert run kræver tekst og accepterer fontStyle, fontSize, color, underline, strikeOut, paragraphBreakBefore og alignment; fontStyle er regular, bold, italic eller boldItalic; alignment er left, center eller right; RGB-komponenter er finitære tal fra nul til én

Run-størrelser skal være positive og højst 4096 points; manglende størrelse bruger feltets fontSize eller 12 points; native PDF numerisk formatering gælder stadig, mens standard RV CSS serialiserer farver til otte-bit komponenter

Felt appearance-options inkluderer fontSize, padding, characterSpacing, wordSpacing og paintWhiteBackground; rigtig AP-generering er krævet, så appearance=false er ugyldigt

Faktiske fontprogrammer

Et felt fontFamilies-array tilsidesætter operationsarrayet; konfigurerede arrays indeholder én til sekteen ikke-tomme gyldige familie-labels; matching folder ASCII-case og sammenligner anden Unicode eksakt; en eksplicit run fontFamily skal matche en konfigureret label, og en manglende run-label vælger den første familie

Uden fontFamilies forbliver den originale enkelt-familie-sti tilgængelig; font-callback-labelen kommer fra felt fontFamily, operation fontFamily eller DejaVu Sans; originale enkelt-familie-runs udelader run fontFamily

File jobs tilføjer input, output og fonts; fonts mapper hver konfigureret familie-label til regular-, bold-, italic- og boldItalic-filstier; kun brugte styles og den regular-face, som scalar-appearances behøver, indlæses; filstier må ikke aliasere output

Versionerede C ABI-kaldere bruger den eksisterende hpdf_form_data_operation_v1-udvidelse og returnerer læsbare hpdf_io_v1-tabeller fra dens font-callback; familie-labels er UTF-8, og style-værdier er 0 til 3; alle rigtige programmer kopieres til afgrænsede ejede bytes, inden appearances komponeres

De originale V1-symboler, baseline strukturstørrelser og valgfrie udvidelses-offsets forbliver uændret; familie/style-aktiver caches inden for én anmodning og deles på tværs af felter uden at debitere samme ejede allokering gentagne gange

Opt-in fallbackFontFamilies=true anvender hele-grapheme-fallback blandt faktisk leverede familier; typede runs kan beholde et ordnet fontFamilyCandidates-array, hvor deklarerete kandidater overvejes før konfigureret rækkefølge; se Windows leveret-familie rich font-fallback for anmodningsnedarvning og fire-stil callback-indlæsning

Aktuel graf og publicering

Uden InputIO bruger C ABI'en sin eede indlæste revision og faktiske ventende graf; en valgfri InputIO leverer en erstatnings-PDF, kopieret og autentificeret privat før noget font-callback; hverken lånt input-mutation eller en mislykket erstatning må ændre den committede kontekst

OutputIO og ResultIO er krævet; den faktiske kandidat-PDF og resultat-JSON skal begge fuldføres succesfuldt efterfulgt af det endelige cancellation-checkpoint, før C ABI'en udveksler dokument og kilde

En mislykket callback kan allerede have modtaget kandidat-bytes; kaldere skal kassere de bytes, når den returnerede status er nonzero; den tidligere committede bibliotekskontekst forbliver uændret

File jobs stager den komplette kandidat og afgrænset svar inden atomisk erstatning af det anmodede output; en manglende font, politifejl, cancellation eller kapacitetsfejl bevarer det eksisterende target

Politikker og resultat

Eksisterende signaturintegritet, DocMDP P1/P2/P3, FieldMDP-låse, skrivebeskyttede flag og AES form-fill-tilladelser håndhæves gennem den native autentificerede motor; signaturePolicy accepterer de samme eksplicitte trust-, timestamp- og revocation-indstillinger som Windows formularimporter

En skrivebeskyttet samme-input-opdatering lykkes kun, når faktiske AP-operatorer, fonts, ressourcer og feltværdier er ækvivalente; komprimerede AP-streams og ikke-kanonisk ækvivalent RV understøttes; en rigtig stilændring er stadig en ændring, selv hvis dens RV-farve kvantiserer til samme CSS-værdi

En ægte uændret anmodning publicerer eksakte bytes af den forberedte aktuelle revision efter politikautentifikation; ventende grafændringer materialiseres i den aktuelle revision inden sammenligningen

Succesfulde svar inkluderer typedRichText=true, typedRichProfile=original-typed-runs-v1, updated, fieldCount, fontBytes og fields fra den faktisk forberedte kandidat; formDataExchange.typedRichFill beskriver disse implementerede indgangspunkter

Hvert fields-item beholder det almindelige navn, scalar-værdi og fieldType-oversigt; et choice bagt af et array har en tom scalar-værdi i denne oversigt, mens dets fulde markering forbliver i den gemte PDF og efterfølgende FDF/XFDF-eksport

Den direkte ExecuteLoadedOperation job-facade og legacy HPDFDocRunJob handle/font callback-udvidelse forbliver separat arbejde; denne binding tilføjer ikke annotations-, indlejret fil-, handlings- eller inkrementel FDF-udveksling

Relaterede emner

FillTypedData, Windows-transaktion, Native blandede typede opdateringer, Windows FDF/XFDF-udveksling