Versionerede objektgraf-JSON-roundtrips

HotPDF kan streame en komplet indlæst indirekte-objektgraf til versioneret JSON og rekonstruere et redigerbart dokument uden at fladgøre PDF-værdier til en jobbeskrivelse

Skema og kompatibilitet

Det aktuelle HotPDF-object-graph-2-skema registrerer schemaVersion, minimumReaderVersion, PDF-version, trailerens Root- og Info-referencer, hvert valgte indirekte objekt, slettede objektidentifikatorer og snapshot- eller trinvis-typen

Læsere accepterer det tidligere HotPDF-object-graph-1-format af kompatibilitetshensyn og afviser fremtidige eller inkompatible skemaversioner, før måldokumentet ændres

Brug v2 stream-API'en til redigerings-roundtrips, fordi v2 registrerer, hvorvidt hver strøm-payload er rå filtrerede data eller afkodede data

Streaming og binære payloads

ExportLoadedObjectGraphJSONToStream skriver objekter og rekursivt ordnede PDF-værdier direkte til destinationsstrømmen uden at bygge en dokumentstor JSON-streng

Rå eller afkodede strømbytes kan udelades, indlejres som chunked base64 eller skrives som sidecar-filer under den angivne mappe

Sidecar-navne er sikre leaf-navne, publicering bruger en søskende midlertidig fil efterfulgt af atomar udskiftning, og import afviser traversal- eller absolutte stier

Importøren læser inputblokke af fast størrelse og materialiserer kun ét top-level objektind ad gangen, samtidig med at grænser håndhæves for JSON-bytes, objektantal og -nummer, værdidybde, strengbytes, individuelle strømme og aggregerede strømbytes

Snapshot- og trinvise tilstande

Et snapshot eksporterer den komplette graf, og ogjimReplace validerer et kandidatdokument, før det skiftes ind i målet

En trinvis eksport indeholder kun dirty-, must-write- og slettede objekter; ogjimUpdate validerer referencer mod foreningen af den eksisterende graf og deltaet og committer derefter gennem den indlæste grafs transaktionsmaskineri

Enhver fejlformet værdi, uopløst reference, ugyldigt Catalog- eller Pages-træ, inkonsistent direkte eller indirekte strøm-Length, opbrugt budget eller fejlet sidecar-læsning efterlader målet uændret

Sikkerhedsgrænse

JSON-grafen indeholder PDF-objekter og trailerens Root- og Info-relationer, men eksporterer aldrig adgangskoder, krypteringsnøgler eller aktiv security-handler-tilstand

Et udskiftet snapshot er derfor ukrypteret, indtil applikationen eksplicit konfigurerer outputbeskyttelse før gemning

Primære API'er

Redigering af objektgraf og sidesamling