PDFium Delphi Component Docs

เมธอด SaveAsReachable

Component: TPdf  ·  Unit: PDFium
เขียนเอกสารใหม่เป็น revision เดียวที่สะอาด โดยเก็บเฉพาะออบเจ็กต์ indirect ที่เข้าถึงได้จาก catalog และ dictionary /Info ของ trailer

Syntax

function SaveAsReachable(Stream: TStream; out Report: TPdfPruneReport; AllowSignedDocument: Boolean = False): Boolean;

function SaveAsReachable(const FileName: string; out Report: TPdfPruneReport; AllowSignedDocument: Boolean = False): Boolean;

Description

PDFium เขียนสำเนาแบบไม่ใช่ incremental ของเอกสารในหน่วยความจำปัจจุบันก่อน เพื่อให้การเขียนใหม่เริ่มจากไบต์แบบ canonical

จากนั้น object graph จะถูกแยกวิเคราะห์ และการเดินตรวจการเข้าถึงได้ทั่วทั้งเอกสารจาก catalog จะรวบรวมออบเจ็กต์ indirect ทุกตัวที่เหลืออยู่ รวมถึง page tree, resource ของหน้า, ฟอนต์, รูปภาพ, form XObject, AcroForm, structure tree, outline, name tree, optional content, metadata, output intent และไฟล์ที่เกี่ยวข้อง

ออบเจ็กต์ที่กลายเป็นไม่ถูกอ้างถึงจากการอัปเดตแบบ incremental การผสานหน้า หรือการบันทึกแบบซ่อมแซม จะถูกทิ้งไป และผลลัพธ์คือ revision แบบ classic เดียวที่ไม่มี object stream และไม่มี cross-reference stream

หมายเลขออบเจ็กต์และ generation ถูกคงไว้ ดังนั้น cross-reference ทุกรายการที่เหลืออยู่ยังคงใช้ได้โดยไม่ต้องจัดหมายเลขใหม่ ส่วนออบเจ็กต์ที่เข้าถึงไม่ได้จะกลายเป็นรายการ free ในตาราง cross-reference แบบ classic ที่สร้างใหม่

trailer ที่สร้างใหม่จะส่ง /Root, /Info และ /ID ต่อไปเฉพาะเมื่อออบเจ็กต์ที่ถูกอ้างถึงยังรอดจากการกวาดครั้งนี้

Policies and limits

Example

Pdf.SaveAsReachable('pruned.pdf', Report);
WriteLn('Kept ', Report.KeptObjectCount, ' pruned ', Report.PrunedObjectCount);

See Also

SaveAs, SaveAsRepaired, SaveAsNormalizedContent