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;
מסלול השמירה הרגיל של PDFium נותר המקור הסמנטי לעריכות הנוכחיות בזיכרון
כל מערך /Contents של עמוד מפוענח לפי סדר ומחובר עם אותו מפריד בין-זרמים המשמש את PDFium
המאסמן משמר מחרוזות ליטרליות, מחרוזות hex, שמות, מערכים, מילונים, מטעני תמונת inline ואופרטורים לא ידועים תוך קנוניזציה של הפרדת אסימונים
הערות מוסרות כברירת מחדל והיקפי q/Q, BT/ET, תוכן מסומן, תאימות, מערך ומילון מאוזנים מאומתים
עמודים מוצלחים מקבלים זרם תוכן חדש אחד ואובייקטי תוכן מקור בלתי מופנים מוסרים מגרף האובייקטים הפעיל שנכתב מחדש
הדוח כולל עמודים מנורמלים ומדולגים, ספירות זרמי קלט ופלט, מערכים ממוזגים, אסימונים, הערות, תמונות inline, אופרטורים לא ידועים וספירות בתים
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);