/Info trailerfunction SaveAsReachable(Stream: TStream; out Report: TPdfPruneReport; AllowSignedDocument: Boolean = False): Boolean;
function SaveAsReachable(const FileName: string; out Report: TPdfPruneReport; AllowSignedDocument: Boolean = False): Boolean;
PDFium pertama-tama menulis salinan non-inkremental dari dokumen dalam memori saat ini sehingga penulisan ulang dimulai dari byte kanonik
Grafik objek lalu diurai dan penelusuran keterjangkauan seluruh dokumen dari katalog mengumpulkan setiap objek tidak langsung yang bertahan, termasuk pohon halaman, sumber daya halaman, font, gambar, Form XObject, AcroForm, pohon struktur, outline, pohon nama, optional content, metadata, output intent, dan file terkait
Objek yang tertinggal tak terjangkau oleh pembaruan inkremental, penggabungan halaman, atau penyimpanan yang diperbaiki dibuang, dan output adalah revisi klasik tunggal tanpa object stream dan tanpa stream referensi silang
Nomor objek dan generasi dipertahankan, jadi setiap referensi silang yang bertahan tetap valid tanpa penomoran ulang; objek tak terjangkau menjadi entri bebas di tabel referensi silang klasik yang dibangun ulang
Trailer yang dibangun ulang membawa /Root, /Info, dan /ID maju hanya ketika objek yang dirujuk bertahan dari penyapuan
TPdfPruneReport reports the kept and pruned indirect object counts, the source and output byte sizes, and a structured failure messageAllowSignedDocument is explicitly enabled because a full rewrite invalidates existing signature byte ranges
Pdf.SaveAsReachable('pruned.pdf', Report);
WriteLn('Kept ', Report.KeptObjectCount, ' pruned ', Report.PrunedObjectCount);