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;
Het rootobject, het aantal actieve objecten, de geëxporteerde objecten en de truncatiestatus worden in de versioneerde pdf-object-graph-v1-enveloppe uitgeschreven
Elke waarde wordt geïdentificeerd als woordenboek, array, letterlijke of hexadecimale string, naam, referentie, null, Boolean, integer, real of trefwoord
Streams tonen hun gecodeerde byte-aantal en, indien ingeschakeld, een SHA-256-digest, terwijl hun payload weggelaten blijft
Directe objecten en leden die uit ObjStm-containers zijn gematerialiseerd, gebruiken dezelfde representatie
| MaxObjects | Maximum aantal actieve objecten dat wordt weggeschreven voordat de JSON-enveloppe truncated: true rapporteert |
| MaxDepth | Maximale diepte van geneste arrays en woordenboeken van 1 tot en met 32 |
| MaxOutputBytes | Harde bovengrens voor de complete met UTF-8 compatibele JSON-bytestroom |
| MaxStringBytes | Maximaal aantal bytes dat van één PDF-string of -naam wordt behouden |
| IncludeStreamDigests | Berekent SHA-256 over gecodeerde stream-bytes zonder de payload te decoderen of te exporteren |
Elke TPdfObjectPatchOperation selecteert een exact objectnummer, generatie en sleutel op het hoogste niveau van het woordenboek, en zet die sleutel vervolgens of verwijdert hem
Set-operaties accepteren getypte null-, Boolean-, integer-, real-, naam-, tekststring- of indirecte-referentiewaarden en accepteren nooit rauwe PDF-syntax
Alle objectidentiteiten, generaties, referenties, namen, dubbele operaties en doelhoekenboeken worden gevalideerd voordat output wordt afgeleverd
Streamlengte- en filterketensleutels kunnen niet worden gepatcht, omdat het onafhankelijk wijzigen ervan de stream zou corrumperen ten opzichte van de gecodeerde bytes
De writer voegt één incrementele revisie toe, reconstrueert de resulterende actieve graaf, laadt deze strikt via PDFium, en schrijft pas daarna de caller-stream of vervangt een bestand atomair
AllowSignedDocument expliciet is ingeschakeld
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);