Цикли обміну версіонованого графа об'єктів у JSON

HotPDF може потоково передавати повний граф завантажених непрямих об'єктів у версіонований JSON та відновлювати редагований документ, не сплющуючи значення PDF в опис завдання

Схема та сумісність

Поточна схема HotPDF-object-graph-2 фіксує schemaVersion, minimumReaderVersion, версію PDF, посилання на Root та Info у трейлері, кожен вибраний непрямий об'єкт, ідентифікатори видалених об'єктів та вид знімка чи інкрементного оновлення

Читачі приймають раніший формат HotPDF-object-graph-1 для сумісності та відхиляють майбутні чи несумісні версії схеми до зміни цільового документа

Для циклів обміну редагування використовуйте потоковий API v2, оскільки v2 фіксує, чи кожне потокове наповнення є сирими фільтрованими даними, чи декодованими даними

Потокова передача та двійкові наповнення

ExportLoadedObjectGraphJSONToStream записує об'єкти та рекурсивно впорядковані значення PDF безпосередньо в потік призначення, не будуючи рядок JSON розміром з документ

Сирі або декодовані байти потоку можна пропустити, вбудувати як base64 частинами або записати як бокові файли у вказаний каталог

Імена бокових файлів є безпечними іменами листових файлів, публікація використовує сусідній тимчасовий файл з наступною атомарною заміною, а імпорт відхиляє шляхи з обходом каталогу та абсолютні шляхи

Імпортер читає блоки вхідних даних фіксованого розміру та матеріалізує лише один запис об'єкта верхнього рівня за раз, дотримуючись обмежень на байти JSON, кількість і номер об'єктів, глибину значення, байти рядка, окремі потоки та сукупні байти потоку

Режими знімка та інкрементного оновлення

Знімок експортує повний граф, а ogjimReplace валідує документ-кандидат перед заміною цільового документа

Інкрементний експорт містить лише брудні об'єкти, об'єкти, що мають бути записані, та видалені об'єкти; ogjimUpdate валідує посилання проти об'єднання наявного графа та дельти, після чого фіксує зміни через механізм транзакцій завантаженого графа

Будь-яке пошкоджене значення, невирішене посилання, недійсне дерево Catalog або Pages, неузгоджена пряма чи непряма довжина /Length потоку, вичерпаний бюджет або невдале читання бокового файлу залишає цільовий документ незмінним

Безпекова межа

JSON-граф містить об'єкти PDF та зв'язки Root і Info у трейлері, але ніколи не експортує паролі, ключі шифрування чи активний стан обробника безпеки

Тому замінений знімок залишається незашифрованим, доки застосунок явно не налаштує захист вихідних даних перед збереженням

Основні API

Редагування графа об'єктів і складання сторінок