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 ยังคงเป็นแหล่งเชิงความหมายสำหรับการแก้ไขปัจจุบันในหน่วยความจำ
array /Contents ของหน้าแต่ละหน้าจะถูกถอดรหัสตามลำดับและเชื่อมเข้าด้วยกันด้วยตัวคั่นระหว่าง stream แบบเดียวกับที่ PDFium ใช้
tokenizer จะคง literal string, hex string, name, array, dictionary, payload ของรูปภาพ inline และ operator ที่ไม่รู้จักไว้ พร้อมทั้งทำระยะห่างระหว่าง token ให้เป็นแบบ canonical
comment จะถูกลบออกโดยค่าเริ่มต้น และขอบเขตของ q/Q, BT/ET, marked-content, compatibility, array และ dictionary ที่สมดุลจะถูกตรวจสอบ
หน้าที่สำเร็จจะได้รับ content stream ใหม่หนึ่งรายการ และออบเจ็กต์เนื้อหาต้นทางที่ไม่ถูกอ้างถึงจะถูกลบออกจาก object graph ที่ใช้งานอยู่ที่เขียนใหม่
รายงานประกอบด้วยจำนวนหน้าที่ทำให้เป็นมาตรฐานและที่ข้าม จำนวน stream อินพุตและเอาต์พุต array ที่รวมแล้ว token, comment, รูปภาพ inline, operator ที่ไม่รู้จัก และจำนวนไบต์
TPdfContentNormalizeOptions.Default เปิดใช้การลบ comment การตรวจสอบสถานะสมดุล การบีบอัด Flate เมื่อได้ประโยชน์ การข้ามหน้าที่ไม่ปลอดภัย และงบประมาณไบต์กับ token ต่อหน้าSkipUnsafePages เป็น False เมื่อต้องการให้ token ที่มีรูปแบบผิด ขอบเขตรูปภาพ inline ที่แก้ไม่ได้ filter ที่ไม่รองรับ หรือการละเมิดขีดจำกัดใด ๆ ยกเลิกการบันทึกทั้งหมดAllowSignedDocument อย่างชัดแจ้ง เนื่องจากการเขียนใหม่ทั้งหมดจะทำให้ช่วงไบต์เดิมใช้ไม่ได้saIncremental จะถูกปฏิเสธ เนื่องจากการทำให้เป็นมาตรฐานเขียน revision ที่ใช้งานอยู่ทั้งหมดออกมา
Options := TPdfContentNormalizeOptions.Default;
Options.SkipUnsafePages := False;
Pdf.SaveAsNormalizedContent('normalized.pdf', Report, Options);