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