PDFium Delphi Component Docs

Object graph inspection and patching

Komponenta: TPdf  ·  Units: PDFium, FPdfCompress
Izvozi ograničeni tipizirani prikaz aktivnih neizravnih objekata i transakcijski primjenjuje ograničene zakrpe rječnika

Sintaksa

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;

Typed JSON format

Korijenski objekt, broj aktivnih objekata, izvezeni objekti i stanje skraćivanja ispuštaju se u verzioniranoj omotnici pdf-object-graph-v1

Svaka vrijednost prepoznaje se kao rječnik, niz, literalni ili heksadecimalni string, ime, referenca, null, Boolean, cijeli broj, realni broj ili ključna riječ

Tokovi izlažu svoj broj kodiranih bajtova i, kada je omogućeno, SHA-256 sažetak dok njihov teret ostaje izostavljen

Izravni objekti i članovi materijalizirani iz ObjStm kontejnera koriste isti prikaz

Inspection options

MaxObjectsMaksimalan broj aktivnih objekata zapisanih prije nego što JSON omotnica prijavi truncated: true
MaxDepthMaksimalna dubina ugniježđenih nizova i rječnika od 1 do 32
MaxOutputBytesTvrda gornja granica za cijeli UTF-8-kompatibilni JSON tok bajtova
MaxStringBytesMaksimalan broj bajtova zadržanih iz jednog PDF stringa ili imena
IncludeStreamDigestsIzračunava SHA-256 nad kodiranim bajtovima toka bez dekodiranja ili izvoza tereta

Patch model

Svaka TPdfObjectPatchOperation odabire točan broj objekta, generaciju i ključ rječnika najviše razine, a zatim taj ključ postavlja ili uklanja

Operacije postavljanja prihvaćaju tipizirane vrijednosti null, Boolean, cijeli broj, realni broj, ime, tekstualni string ili neizravnu referencu i nikad ne prihvaćaju sirovu PDF sintaksu

Svi identiteti objekata, generacije, reference, imena, duplicirane operacije i ciljni rječnici validiraju se prije isporuke izlaza

Ključevi duljine toka i lanca filtara ne mogu se zakrpiti jer bi njihova promjena neovisno od kodiranih bajtova oštetila tok

Zapisivač dodaje jednu inkrementalnu reviziju, rekonstruira rezultirajući aktivni graf, učitava ga strogo kroz PDFium i tek tada zapisuje strujanje pozivatelja ili atomarno zamjenjuje datoteku

Policies and limits

Primjer

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);

Vidi također

Incremental save session, SaveAsObjectStream, SaveAs