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