Versionierte Objektgraph-JSON-Round-Trips

HotPDF kann einen vollständigen geladenen Graph indirekter Objekte als versioniertes JSON streamen und ein editierbares Dokument rekonstruieren, ohne die PDF-Werte zu einer flachen Job-Beschreibung zu reduzieren

Schema und Kompatibilität

Das aktuelle HotPDF-object-graph-2-Schema zeichnet schemaVersion, minimumReaderVersion, die PDF-Version, die Trailer-Root- und Info-Referenzen, jedes ausgewählte indirekte Objekt, Kennungen gelöschter Objekte und die Snapshot- oder Incremental-Art auf

Reader akzeptieren das ältere HotPDF-object-graph-1-Format aus Kompatibilitätsgründen und verwerfen zukünftige oder inkompatible Schema-Versionen, bevor das Zieldokument verändert wird

Verwenden Sie die v2-Stream-API für Edit-Round-Trips, denn v2 zeichnet auf, ob jede Stream-Payload rohe gefilterte oder dekodierte Daten ist

Streaming und binäre Payloads

ExportLoadedObjectGraphJSONToStream schreibt Objekte und rekursiv geordnete PDF-Werte direkt in den Ziel-Stream, ohne einen dokumentgroßen JSON-String aufzubauen

Rohe oder dekodierte Stream-Bytes können weggelassen, als chunked Base64 eingebettet oder als Sidecar-Dateien unterhalb des angegebenen Verzeichnisses geschrieben werden

Sidecar-Namen sind sichere Leaf-Namen, die Veröffentlichung nutzt eine temporäre Geschwisterdatei mit anschließendem atomaren Austausch, und der Import verwirft Traversal- oder absolute Pfade

Der Importer liest Eingabeblöcke fester Größe und materialisiert jeweils nur einen Top-Level-Objekteintrag, während er Limits für JSON-Bytes, Objektanzahl und -nummer, Werttiefe, String-Bytes, einzelne Streams und aggregierte Stream-Bytes durchsetzt

Snapshot- und Incremental-Modi

Ein Snapshot exportiert den vollständigen Graphen, und ogjimReplace validiert ein Kandidatendokument, bevor es ins Ziel eingetauscht wird

Ein inkrementeller Export enthält nur Dirty-, Must-Write- und gelöschte Objekte; ogjimUpdate validiert Referenzen gegen die Vereinigung aus bestehendem Graph und Delta und committet dann über die Transaktionsmechanik des geladenen Graphen

Jeder fehlerhafte Wert, jede unauflösbare Referenz, ein ungültiger Catalog- oder Pages-Baum, eine inkonsistente direkte oder indirekte Stream-Length, ein erschöpftes Budget oder ein fehlgeschlagener Sidecar-Lesevorgang lässt das Ziel unverändert

Sicherheitsgrenze

Der JSON-Graph enthält PDF-Objekte und die Trailer-Root- und Info-Beziehungen, exportiert aber niemals Passwörter, Verschlüsselungsschlüssel oder aktiven Security-Handler-State

Ein ersetzter Snapshot ist daher unverschlüsselt, bis die Anwendung vor dem Speichern explizit einen Ausgabeschutz konfiguriert

Zentrale APIs

Bearbeitung des Objektgraphen und Seitenzusammenstellung