Round Trip JSON del Grafo di Oggetti Versionato
HotPDF può streammare un grafo completo di oggetti indiretti caricati verso JSON versionato e ricostruire un documento modificabile senza appiattire i valori PDF in una job description
Schema e compatibilità
Lo schema attuale HotPDF-object-graph-2 registra schemaVersion, minimumReaderVersion, versione PDF, riferimenti trailer Root e Info, ogni oggetto indiretto selezionato, identificatori degli oggetti eliminati e il tipo snapshot o incrementale
I reader accettano il formato precedente HotPDF-object-graph-1 per compatibilità e rifiutano versioni di schema future o incompatibili prima di modificare il documento di destinazione
Usa la stream API v2 per i round trip di editing, perché v2 registra se il payload di ogni stream è dati filtrati raw o dati decodificati
Streaming e payload binari
ExportLoadedObjectGraphJSONToStream scrive oggetti e valori PDF ordinati ricorsivamente direttamente sullo stream di destinazione, senza costruire una stringa JSON grande quanto il documento
I byte degli stream raw o decodificati possono essere omessi, incorporati come base64 a chunk o scritti come file sidecar nella directory fornita
I nomi dei sidecar sono leaf name sicuri, la pubblicazione usa un file temporaneo sibling seguito da rimpiazzo atomico, e l'import rifiuta percorsi di traversal o assoluti
L'importer legge blocchi di input a dimensione fissa e materializza solo una entry di oggetto top-level alla volta, applicando limiti su byte JSON, conteggio e numero di oggetti, profondità dei valori, byte delle stringhe, stream individuali e byte aggregati degli stream
Modalità snapshot e incrementale
Uno snapshot esporta il grafo completo e ogjimReplace valida un documento candidato prima di scambiarlo con la destinazione
Un export incrementale contiene solo oggetti dirty, must-write ed eliminati; ogjimUpdate valida i riferimenti contro l'unione del grafo esistente e del delta, poi committa attraverso la macchina a transazioni del grafo caricato
Qualunque valore malformato, riferimento irrisolto, Catalog o albero Pages non valido, Length di stream diretto o indiretto incoerente, budget esaurito o lettura di sidecar fallita lascia la destinazione invariata
Sicurezza
Il grafo JSON contiene oggetti PDF e relazioni trailer Root e Info, ma non esporta mai password, chiavi di cifratura o stato attivo del security handler
Uno snapshot rimpiazzato è quindi non cifrato finché l'applicazione non configura esplicitamente la protezione dell'output prima del salvataggio