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;
Běžná cesta uložení PDFium zůstává sémantickým zdrojem pro aktuální editace v paměti
Každé pole /Contents stránky je dekódováno v pořadí a spojeno stejným mezistreamovým oddělovačem, který používá PDFium
Tokenizer zachovává literální řetězce, hexadecimální řetězce, názvy, pole, slovníky, obsahy inline obrazů a neznámé operátory, zatímco kanonizuje oddělování tokenů
Komentáře jsou ve výchozím nastavení odstraněny a vyvážené rozsahy q/Q, BT/ET, označeného obsahu, kompatibility, polí a slovníků jsou validovány
Úspěšné stránky obdrží jeden nový obsahový proud a neodkazované zdrojové obsahové objekty jsou odstraněny z přepsaného aktivního grafu objektů
Zpráva obsahuje normalizované a přeskočené stránky, počty vstupních a výstupních proudů, sloučená pole, tokeny, komentáře, inline obrazy, neznámé operátory a počty bajtů
TPdfContentNormalizeOptions.Default povolí odstranění komentářů, validaci vyvážených stavů, Flate kompresi, když je přínosná, přeskočení nebezpečných stránek a rozpočty bajtů a tokenů na stránkuSkipUnsafePages na False, když má jakýkoli poškozený token, nevyřešená hranice inline obrazu, nepodporovaný filtr nebo porušení limitu přerušit celé uloženíAllowSignedDocument výslovně povoleno, protože úplný přepis zneplatní stávající rozsahy bajtůsaIncremental je odmítnuto, protože normalizace zapisuje kompletní aktivní revizi
Options := TPdfContentNormalizeOptions.Default;
Options.SkipUnsafePages := False;
Pdf.SaveAsNormalizedContent('normalized.pdf', Report, Options);