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, integer, real или keyword
Потоците разкриват броя си кодирани байтове и, когато е включено, SHA-256 digest, докато полезният им товар остава пропуснат
Директните обекти и членовете, материализирани от ObjStm контейнери, използват същото представяне
| MaxObjects | Максимум активни обекти, записани преди JSON пликът да отчете truncated: true |
| MaxDepth | Максимална дълбочина на вложените масиви и речници от 1 до 32 |
| MaxOutputBytes | Строга горна граница за пълния JSON байтов поток, съвместим с UTF-8 |
| MaxStringBytes | Максимум байтове, запазени от един PDF низ или име |
| IncludeStreamDigests | Изчислява SHA-256 върху кодираните байтове на потока, без да декодира или експортира полезния товар |
Всяка TPdfObjectPatchOperation избира точен номер на обект, поколение и ключ на речника от най-високо ниво, след което или задава, или премахва този ключ
Операциите за задаване приемат типизирани стойности null, Boolean, integer, real, име, текстов низ или непряка препратка и никога не приемат суров 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);