Wersjonowany JSON grafu obiektów

HotPDF może strumieniować kompletny graf załadowanych obiektów pośrednich do wersjonowanego JSON i odtworzyć edytowalny dokument bez spłaszczania wartości PDF do opisu zadania

Schemat i zgodność

Bieżący schemat HotPDF-object-graph-2 rejestruje schemaVersion, minimumReaderVersion, wersję PDF, referencje trailer Root i Info, każdy wybrany obiekt pośredni, identyfikatory usuniętych obiektów oraz rodzaj migawki albo przyrostu

Czytelnicy akceptują wcześniejszy format HotPDF-object-graph-1 dla zgodności i odrzucają przyszłe lub niezgodne wersje schematu, zanim zmienią dokument docelowy

Do edycyjnych round tripów używaj strumieniowego API v2, ponieważ v2 rejestruje, czy każdy ładunek strumienia to surowe dane przefiltrowane, czy dane zdekodowane

Strumieniowanie i ładunki binarne

ExportLoadedObjectGraphJSONToStream zapisuje obiekty i rekurencyjnie uporządkowane wartości PDF bezpośrednio do strumienia docelowego, bez budowania łańcucha JSON wielkości dokumentu

Surowe lub zdekodowane bajty strumieni można pominąć, osadzić jako chunked base64 albo zapisać jako pliki towarzyszące w podanym katalogu

Nazwy plików towarzyszących są bezpiecznymi nazwami liści, publikacja używa sąsiedniego pliku tymczasowego, po którym następuje atomowa zamiana, a import odrzuca ścieżki z path traversal oraz ścieżki absolutne

Importer czyta wejście w blokach o stałym rozmiarze i materializuje naraz tylko jeden wpis obiektu najwyższego poziomu, wymuszając limity bajtów JSON, liczby i numeru obiektów, głębokości wartości, bajtów łańcuchów, pojedynczych strumieni oraz zagregowanych bajtów strumieni

Tryby migawki i przyrostowy

Migawka eksportuje kompletny graf, a ogjimReplace waliduje dokument kandydujący przed zamianą go w dokument docelowy

Eksport przyrostowy zawiera wyłącznie obiekty dirty, must-write i usunięte; ogjimUpdate waliduje referencje względem unii istniejącego grafu i delty, a następnie zatwierdza przez mechanizm transakcji załadowanego grafu

Każda źle uformowana wartość, nierozwiązana referencja, nieprawidłowy Catalog lub drzewo Pages, niespójna długość strumienia bezpośrednia albo pośrednia, wyczerpany budżet lub nieudane odczytanie pliku towarzyszącego pozostawia dokument docelowy bez zmian

Granica bezpieczeństwa

Graf JSON zawiera obiekty PDF i relacje trailer Root oraz Info, ale nigdy nie eksportuje haseł, kluczy szyfrowania ani aktywnego stanu security handlera

Zamieniona migawka jest zatem niezaszyfrowana, dopóki aplikacja jawnie nie skonfiguruje ochrony wyjścia przed zapisem

Główne API

Edycja grafu obiektów i składanie stron