Windows FDF/XFDF Exchange

Windows file joby i hpdf_document_execute_json_v1 implementují forms.export a forms.import pro fdf a xfdf pomocí nativních skalárních i ohraničených XHTML/CSS kodeků

File joby

{
  "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 použije input, output, format a volitelné password; formDataInput ani fonts nevyžaduje; file joby zarezervují výhradního kandidáta vedle cíle, flushnou a zavřou ho, validují ohraničený výsledkový JSON a pak atomicky vymění cíl

Chybějící písma, poškozený vstup, selhání autentizace či politiky, vyčerpané limity i neúspěšná publikace zachovají stávající kompletní cíl; výstup nesmí být aliasem PDF ani form-data vstupu, tedy ani hard linku

Pojmenované font rodiny

forms.import přijme fontFamilies v kořenu operace jako pole jedné až šestnácti popisků; absence ponechá původní profil jedné rodiny a callback popisek fontFamily

"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"
  }
}

U file jobů obsahuje fonts objekty klíčované přesnými nakonfigurovanými popisky; bez fontFamilies si uchová původní objekt přímých style cest; čtou se jen skutečné rodina/styl programy a všechny vybrané font bajty sdílejí rozpočet operace

U Windows V1 callbacků dostane stávající font callback každý skutečný kanonický UTF-8 nakonfigurovaný popisek a vybraný styl; dvě rodiny používající všechny čtyři styly vytvoří osm skutečných programových žádostí, aniž by se změnil callback záznam

ASCII popisková písmena se porovnávají bez rozlišení velikosti a ostatní Unicode znaky přesně; popisky jsou odlišné, neprázdné a nejvýše 128 UTF-16 code unit, bez okolních bílých znaků, řídicích znaků, nespárovaných surrogátů či CSS interpunkce uvozovek/oddělovačů

První nakonfigurovaná rodina je defaultem skalárního textu i zděděných rich stylů; defaultně CSS seznamy font-family použijí výběr první známé rodiny nativního kodeku

Opt-in fallbackFontFamilies=true zachová uspořádané inline CSS kandidáty font-family a načte skutečné nakonfigurované řez/styl programy pro fallback po celých grafémech; typované kandidáty, načítání callbacků i rozsah jen-rich popisuje Windows rich font fallback dodaných rodin

Aplikovaný výsledek reportuje richXMLProfile inline-xhtml-font-families-v1, nakonfigurované pole fontFamilies i skutečné objekty fontFamilyStyles obsahující rodinu, styl a bajty; fontStyles si uchovává původní typ objektového pole a sumarizuje bajtové počty podle stylu; fontBytes počítá všechny skutečné programy

Bez pole je richXMLProfile inline-xhtml-v1; smíšené skalární i původní typed-rich forms.fill používá samostatný binding original-typed-runs-v1 popsaný níže; starší rozšíření font callbacku jobů zůstává samostatným navazujícím úkolem

Verzované Windows C callbacky

Zahrňte hotpdf_abi_form_data.h; vyplňte hpdf_form_data_operation_v1, nastavte operation.struct_size na jeho kompletní velikost a předejte jeho nezměněnou operation předponu do hpdf_document_execute_json_v1

Volitelný font callback dostane UTF-8 rodinné bajty a styl 0 regular, 1 bold, 2 italic či 3 boldItalic a vrátí kompletní read tabulku hpdf_io_v1 pro skutečný font program; všechny čtyři programy dodávejte, když rich data používají všechny čtyři styly

Skalární data vyžádají regular program; fontFamily defaultuje na DejaVu Sans; dodané font IO callbacky i user data musí zůstat platné, dokud operace nevrátí; nenulové callback statusy jsou lepivé a propagují se bez fallback retry

U forms.import dodá InputIO FDF/XFDF a cíl už musí být načtený; OutputIO dostane kandidátní PDF a ResultIO ohraničený JSON; forms.export použije původní záznam V1 a zapíše FDF/XFDF do OutputIO

Windows hpdf_document_load_from_io zkopíruje kompletní vstup do neměnného vlastněného zdroje, dřív než se vrátí; náhrada či připojování volajícího nemůže změnit aktivní načtenou revizi ani její pozdější form-data výstup

Vlastněné zdroje použijí pro pozadí random čtení samostatný synchronizovaný handle, takže prefetch nemůže posunout sekvenční publikační kurzor; kandidátní dokument uvolní své pozadí čtečky, dřív než se jeho zdroj zničí

Aktivní kontext se změní až poté, co uspějí jak výstupní, tak výsledkový callback a projde finální checkpoint zrušení; selhání callbacku či zrušení kandidáta zahodí a zachová předchozí dokument i vlastněný zdroj

Callback už mohl dostat kandidátní bajty, dřív než pozdější callback selhal; vlastní výstupní cíl volající zapisuje až poté, co funkce execute vrátí HPDF_STATUS_OK

Původní rozložení záznamů V1 i exportované symboly zůstávají nezměněné; tohle Windows rozšíření je oddělené od publikovaného rozšíření callbacků nativního Linuxu

Bound vstupní body jsou file job processor i hpdf_document_execute_json_v1; starší callback záznam HPDFDocRunJob i obecné ExecuteLoadedOperation si v této fázi font rozšíření nezískají; Pascal volající můžou použít explicitní transaction třídu

Pole, rich text a politika

Podporované hodnoty zahrnují vnořené Unicode textové názvy, exportní názvy checkboxů a radio, pole multiselect i nezměněné read-only hodnoty; /V, /RV i skutečné AP resource se ukládají společně; neznámá pole i vyžadovaná omezení polí transakci zhatí

Rich interchange používá zdokumentovaný ohraničený XHTML/CSS profil i skutečné dodané style písma; netvrdí podporu libovolného HTML, celého CSS či neomezeného rich XML

Podepsané aktualizace AES R5/R6 si uchovají kompletní původní předponu, šifrovací parametry, permanentní šifrovací identifikátor i stávající CMS podpis; nezměněné skalární či rich importy jsou bajt za bajt shodné s aktuální potvrzenou revizí

Stávající integrita CMS i vazba ESS podepsávajícího se autentizují, dřív než podepsané formulářové aktualizace; vyplňování P2/P3 je dovolené jen v rámci svých skutečných omezení; P1, zámky FieldMDP i změněná read-only pole publikaci odmítnou

signaturePolicy přijme Booleovské requireCAdES, requireTimestamp, requireAdobeRevocationInfo a requireTimestampRevocation; trustedCAFile, timestampCAFile, timestampCRLFile a revocationCAFile musí být řetězce bez NUL a vyberou explicitní důvěru volajícího pro vyžádané kontroly

Volby C callbacků navíc ohraničí podepsané důkazy přes maxEvidenceBytes a maxEvidenceObjects; validace důvěry je odlišná od výchozí kontroly integrity podpisu

formData může snížit maxBytes, maxFields, maxObjects, maxDepth, maxValues, maxValueCodeUnits a maxTotalCodeUnits; ta přesná kladná celá čísla se navíc oříznou pracovní kapacitou; rozpočtové objectCount a pageCount omezují kandidátní dokumenty

budget.timeMilliseconds nastaví deadline operace; Windows C callbacky navíc přijmou elapsedMilliseconds jako dodatečně přísnější mez; zrušení se dotazuje během přípravy aktuálního grafu, dekódování formuláře, čtení písem, kontrol CMS, načítání kandidáta i publikace

Capabilities reportují skutečné formáty, styly, neměnný vstup i transakční chování callbacků; mapovaná anotační XFDF výměna je implementovaná samostatně, zatímco vložené FDF soubory, širší akce i inkrementální FDF dokumenty zůstávají nedokončené

Související témata

Smíšené skalární i původní typované rich vyplňování používá tentýž autentizovaný Windows kandidátní životní cyklus přes file joby i execute-json-v1

Transaction třída, Příprava aktuálního grafu, Nativní form data

Interní styly aplikují ohraničené selektory, importance, specificitu a pořadí zdrojů na skutečné importované rich hodnoty i uložená appearance; opakované ekvivalentní importy i neúspěšná publikace si uchovávají stávající transakční záruky

richTextResources dodá napojený i importovaný CSS pro skutečné Windows file joby i importy execute-json-v1, se stávající transakcí i font bindingy