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;
Rotobjektet, antalet aktiva objekt, exporterade objekt och trunkeringstillstånd emitteras i det versionshanterade pdf-object-graph-v1-kuvertet
Varje värde identifieras som dictionary, array, literal eller hexadecimal sträng, namn, referens, null, booleskt värde, heltal, reellt tal eller nyckelord
Strömmar exponerar sitt kodade byte-antal och, när det är aktiverat, en SHA-256-digest medan deras nyttolast förblir utelämnad
Direkta objekt och medlemmar materialiserade från ObjStm-behållare använder samma representation
| MaxObjects | Maximalt antal aktiva objekt som skrivs innan JSON-kuvertet rapporterar truncated: true |
| MaxDepth | Maximalt nästlingsdjup för arrayer och dictionaryer från 1 till och med 32 |
| MaxOutputBytes | Hård övre gräns för den kompletta UTF-8-kompatibla JSON-byteströmmen |
| MaxStringBytes | Maximalt antal byte som behålls från en PDF-sträng eller ett namn |
| IncludeStreamDigests | Beräknar SHA-256 över kodade strömbyte utan att avkoda eller exportera nyttolasten |
Varje TPdfObjectPatchOperation väljer ett exakt objektnummer, generation och nyckel på toppnivå i dictionaryn, och sätter eller tar sedan bort den nyckeln
Set-operationer accepterar typade värden av null, booleskt, heltal, reellt tal, namn, textsträng eller indirekt referens och accepterar aldrig rå PDF-syntax
Alla objektidentiteter, generationer, referenser, namn, dubblettoperationer och måldictionaryer valideras innan utdata levereras
Strömmens längd- och filterkedjenycklar kan inte patchas, eftersom att ändra dem oberoende av de kodade byte:erna skulle skada strömmen
Skrivaren lägger till en inkrementell revision, bygger om den resulterande aktiva grafen, strikt-laddar den genom PDFium och skriver först då till anroparens ström eller ersätter en fil atomärt
AllowSignedDocument uttryckligen aktiveras
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);