Interchange FDF/XFDF su Windows

I file job Windows e hpdf_document_execute_json_v1 implementano forms.export e forms.import per fdf e xfdf usando i codec nativi scalari e rich XHTML/CSS limitati

File job

{
  "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 usa input, output, format e password opzionale; non richiede formDataInput né fonts; i file job riservano un candidato esclusivo accanto al target, ne fanno flush e chiusura, validano il result JSON limitato e poi sostituiscono il target atomicamente

Font mancanti, input malformato, fallimenti di autenticazione o policy, limiti esauriti e pubblicazione fallita preservano il target completo esistente; l'output non deve essere alias del PDF o dell'input dei dati form, incluso un hard link

Famiglie di font nominate

forms.import accetta fontFamilies alla radice dell'operazione come array da uno a sedici etichette; l'assenza conserva l'originale profilo a famiglia singola e l'etichetta callback 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"
  }
}

Per i file job, fonts contiene oggetti indicizzati dalle etichette configurate esatte; senza fontFamilies conserva l'originale oggetto diretto a percorsi per stile; leggete solo programmi famiglia/stile reali, con tutti i byte font selezionati che condividono il budget dell'operazione

Per i callback Windows V1, l'esistente callback font riceve ogni etichetta canonica UTF-8 configurata reale e lo stile selezionato; due famiglie che usano tutti e quattro gli stili generano otto richieste reali di programmi senza cambiare il record callback

Le lettere ASCII delle etichette si confrontano senza case mentre gli altri caratteri Unicode si confrontano esattamente; le etichette sono distinte, non vuote e al massimo 128 code unit UTF-16, senza whitespace circostante, caratteri di controllo, surrogate non appaiate o punteggiatura di quote/separatore CSS

La prima famiglia configurata è il default per il testo scalare e gli stili rich ereditati; per default, le liste CSS font-family usano la selezione first-known-family del codec nativo

fallbackFontFamilies=true opt-in preserva i candidati inline CSS font-family ordinati e carica programmi face/stile configurati reali per il fallback whole-grapheme; vedere Windows supplied-family rich font fallback per candidati tipizzati, caricamento via callback e lo scope rich-only

Il risultato applicato riporta richXMLProfile inline-xhtml-font-families-v1, l'array fontFamilies configurato e oggetti fontFamilyStyles reali contenenti famiglia, stile e byte; fontStyles conserva l'originale tipo object-array e riassume i conteggi byte per stile; fontBytes conta tutti i programmi reali

Senza l'array, richXMLProfile è inline-xhtml-v1; forms.fill scalare misto e rich tipizzato originale usa il separato binding original-typed-runs-v1 descritto di seguito; la più vecchia estensione callback font dei job resta lavoro di follow-up separato

Callback Windows C versionati

Includete hotpdf_abi_form_data.h; riempite hpdf_form_data_operation_v1, impostate operation.struct_size alla sua dimensione completa e passate il suo prefisso operazione invariato a hpdf_document_execute_json_v1

Il callback font opzionale riceve i byte famiglia UTF-8 e lo stile 0 regular, 1 bold, 2 italic o 3 boldItalic, e restituisce una tabella di lettura hpdf_io_v1 completa per il programma font reale; fornite tutti e quattro i programmi quando i dati rich usano tutti e quattro gli stili

I dati scalari richiedono il programma regular; fontFamily ha default DejaVu Sans; i callback IO dei font forniti e i user data devono restare validi finché l'operazione non restituisce; gli stati callback diversi da zero sono sticky e vengono propagati senza retry di fallback

Per forms.import, InputIO fornisce FDF/XFDF e la destinazione deve essere già caricata; OutputIO riceve il PDF candidato e ResultIO riceve il JSON limitato; forms.export usa l'originale record V1 e scrive FDF/XFDF su OutputIO

hpdf_document_load_from_io Windows copia l'input completo in una sorgente owned immutabile prima di restituire; sostituzioni o append del chiamante non possono cambiare la revisione caricata attiva né il suo successivo output dei dati form

Le sorgenti owned usano un handle separato sincronizzato per le letture random in background, così il prefetch non può spostare il cursore sequenziale di pubblicazione; il documento candidato rilascia i propri reader in background prima che la sua sorgente venga distrutta

Il contesto attivo cambia solo dopo che entrambi i callback output e result sono riusciti e il checkpoint finale di cancellazione è passato; un fallimento callback o la cancellazione scarta il candidato e conserva il documento precedente e la sorgente owned

Un callback può aver già ricevuto byte candidato prima che un callback successivo fallisca; i chiamanti devono committare la propria destinazione di output solo dopo che la funzione execute restituisce HPDF_STATUS_OK

I layout dei record V1 originali e i simboli esportati sono invariati; questa estensione Windows è separata dall'estensione callback pubblicata del Linux nativo

I punti di ingresso vincolati sono il processore dei file job e hpdf_document_execute_json_v1; il più vecchio record callback HPDFDocRunJob e il generico ExecuteLoadedOperation non acquisiscono un'estensione font in questa fase; i chiamanti Pascal possono usare la classe di transazione esplicita

Campi, rich text e policy

I valori supportati includono nomi di testo Unicode annidati, nomi export di checkbox e radio, array multiselect e valori read-only invariati; /V, /RV e risorse AP genuine vengono salvate insieme; campi sconosciuti e vincoli di campi obbligatori falliscono la transazione

L'interchange rich usa il profilo XHTML/CSS limitato documentato e font di stile forniti reali; non afferma supporto di HTML arbitrario, tutto il CSS o XML rich senza restrizioni

Gli aggiornamenti firmati AES R5/R6 conservano il prefisso originale completo, i parametri di cifratura, l'identificatore permanente di cifratura e la firma CMS esistente; import scalari o rich invariati sono byte-identici alla revisione corrente committata

L'integrità CMS esistente e il binding ESS del firmatario vengono autenticati prima degli aggiornamenti firmati del form; il fill P2/P3 è permesso solo entro i suoi vincoli reali; P1, lock FieldMDP e campi read-only modificati rifiutano la pubblicazione

signaturePolicy accetta i Boolean requireCAdES, requireTimestamp, requireAdobeRevocationInfo e requireTimestampRevocation; trustedCAFile, timestampCAFile, timestampCRLFile e revocationCAFile devono essere stringhe senza NUL e selezionano trust esplicito del chiamante per i controlli richiesti

Le opzioni dei callback C limitano anche l'evidenza firmata tramite maxEvidenceBytes e maxEvidenceObjects; la validazione del trust è distinta dal controllo di integrità firma default

formData può abbassare maxBytes, maxFields, maxObjects, maxDepth, maxValues, maxValueCodeUnits e maxTotalCodeUnits; questi interi positivi esatti vengono inoltre clampati dalla capacità di lavoro; budget objectCount e pageCount limitano i documenti candidato

budget.timeMilliseconds imposta la scadenza dell'operazione; i callback Windows C accettano anche elapsedMilliseconds come vincolo aggiuntivo più stretto; la cancellazione viene interrogata durante preparazione del grafo corrente, decodifica del form, lettura font, controlli CMS, caricamento del candidato e pubblicazione

Le capability riportano formati, stili, input immutabile e comportamento transazionale callback reali; l'interchange XFDF mappato delle annotazioni è implementato separatamente, mentre file FDF incorporati, azioni più ampie e documenti FDF incrementali restano incompiuti

Argomenti correlati

Fill scalare misto e rich tipizzato originale usa lo stesso ciclo di vita candidato Windows autenticato attraverso file job ed execute-json-v1

Transaction class, Current graph preparation, Native form data

I fogli di stile interni applicano selettori limitati, importance, specificità e ordine sorgente ai valori rich importati effettivi e alle appearance salvate; gli import equivalenti ripetuti e la pubblicazione fallita conservano le garanzie transazionali esistenti

richTextResources fornisce CSS collegato e importato per file job Windows reali e import execute-json-v1, usando la transazione e i binding dei font esistenti