function ExportObjectGraph(Stream: TStream; const Options: TPdfObjectGraphInspectOptions; out Report: TPdfObjectGraphReport): Boolean;
function SaveAsObjectGraphPatched(Stream: TStream; const Operations: TPdfObjectPatchOperations; out Report: TPdfObjectGraphReport; AllowSignedDocument: Boolean = False): Boolean;
function SaveAsObjectGraphPatched(const FileName: string; const Operations: TPdfObjectPatchOperations; out Report: TPdfObjectGraphReport; AllowSignedDocument: Boolean = False): Boolean;
Кореневий об'єкт, кількість активних об'єктів, експортовані об'єкти та стан обрізання видаються в версіонованому конверті pdf-object-graph-v1
Кожне значення ідентифікується як словник, масив, літеральний або шістнадцятковий рядок, ім'я, посилання, null, Boolean, ціле, дійсне або ключове слово
Потоки відкривають свою закодовану кількість байтів і, якщо ввімкнено, дайджест SHA-256, тоді як їхнє наповнення лишається пропущеним
Прямі об'єкти та члени, матеріалізовані з контейнерів ObjStm, використовують те саме подання
| MaxObjects | Максимум активних об'єктів, записаних до того, як JSON-конверт повідомить truncated: true |
| MaxDepth | Максимальна глибина вкладеності масивів і словників від 1 до 32 |
| MaxOutputBytes | Жорстка верхня межа для повного потоку байтів JSON, сумісного з UTF-8 |
| MaxStringBytes | Максимум байтів, збережених з одного рядка або імені PDF |
| IncludeStreamDigests | Обчислює SHA-256 над закодованими байтами потоку без декодування чи експорту наповнення |
Кожна TPdfObjectPatchOperation обирає точний номер об'єкта, покоління та ключ словника верхнього рівня, а потім встановлює або видаляє цей ключ
Операції встановлення приймають типізовані значення null, Boolean, ціле, дійсне, ім'я, текстовий рядок або непряме посилання і ніколи не приймають сирого PDF-синтаксису
Усі ідентичності об'єктів, покоління, посилання, імена, дубльовані операції та цільові словники перевіряються до видачі результату
Ключі довжини потоку та ланцюга фільтрів патчити не можна, бо їхня незалежна зміна від закодованих байтів зіпсувала б потік
Засіб запису додає одну інкрементну редакцію, реконструює результівний активний граф, строго завантажує його через PDFium і лише потім записує потік викликувача або атомарно замінює файл
AllowSignedDocument
Options := TPdfObjectGraphInspectOptions.Default;
Pdf.ExportObjectGraph(JsonStream, Options, Report);
SetLength(Operations, 1);
Operations[0].Kind := popSet;
Operations[0].ObjectNumber := CatalogObjectNumber;
Operations[0].Generation := 0;
Operations[0].Key := 'Lang';
Operations[0].Value.Kind := povTextString;
Operations[0].Value.TextValue := 'en-US';
Pdf.SaveAsObjectGraphPatched('patched.pdf', Operations, Report);