function SaveAsNormalizedContent(Stream: TStream; out Report: TPdfContentNormalizeReport; const Options: TPdfContentNormalizeOptions; SaveOption: TSaveOption = saNoIncremental; PdfVersion: TPdfVersion = pvUnknown): Boolean;
function SaveAsNormalizedContent(const FileName: string; out Report: TPdfContentNormalizeReport; const Options: TPdfContentNormalizeOptions; SaveOption: TSaveOption = saNoIncremental; PdfVersion: TPdfVersion = pvUnknown): Boolean;
Den normale PDFium-gem-sti forbliver den semantiske kilde til aktuelle in-memory-redigeringer
Hver side-/Contents-array afkodes i rækkefølge og sammenføjes med den samme inter-stream-adskiller, som PDFium bruger
Tokenizeren bevarer literal-strings, hex-strenge, navne, arrays, dictionaries, inline-image-payloads og ukendte operatorer, mens token-adskillelse kanoniseres
Kommentarer fjernes som standard, og afbalancerede q/Q-, BT/ET-, marked-content-, kompatibilitets-, array- og dictionary-scopes valideres
Succesfulde sider modtager én ny content-stream, og ikke-refererede kildeindholdsobjekter fjernes fra den omskrevne aktive objektgraf
Rapporten inkluderer normaliserede og sprungne sider, input- og output-streamantal, sammenlagte arrays, tokens, kommentarer, inline-billeder, ukendte operatorer og byteantal
TPdfContentNormalizeOptions.Default enables comment removal, balanced-state validation, Flate compression when beneficial, unsafe-page skipping, and per-page byte and token budgetsSkipUnsafePages to False when any malformed token, unresolved inline-image boundary, unsupported filter, or limit violation shall abort the full saveAllowSignedDocument is explicitly enabled because a full rewrite invalidates existing byte rangessaIncremental is rejected because normalization writes a complete active revision
Options := TPdfContentNormalizeOptions.Default;
Options.SkipUnsafePages := False;
Pdf.SaveAsNormalizedContent('normalized.pdf', Report, Options);