/Info трейлераfunction SaveAsReachable(Stream: TStream; out Report: TPdfPruneReport; AllowSignedDocument: Boolean = False): Boolean;
function SaveAsReachable(const FileName: string; out Report: TPdfPruneReport; AllowSignedDocument: Boolean = False): Boolean;
PDFium спершу записує неінкрементну копію поточного документа в пам'яті, щоб перезапис починався з канонічних байтів
Далі розбирається граф об'єктів, і проходження досяжності по всьому документу з каталогу збирає кожен непрямий об'єкт, що вижив, зокрема дерево сторінок, ресурси сторінок, шрифти, зображення, Form XObjects, AcroForm, дерево структури, закладки, дерева імен, optional content, метадані, OutputIntent і пов'язані файли
Об'єкти, що лишилися недосяжними через інкрементні оновлення, об'єднання сторінок або відремонтовані збереження, відкидаються, а результатом є одна класична ревізія без потоків об'єктів і без потоку перехресних посилань
Номери об'єктів і покоління зберігаються, тож кожне перехресне посилання, що вижило, лишається чинним без перенумерації; недосяжні об'єкти стають вільними записами в перебудованій класичній таблиці перехресних посилань
Перебудований трейлер успадковує /Root, /Info і /ID, лише коли об'єкти, на які вони посилаються, пережили вимітання
TPdfPruneReport звітує кількості збережених і видалених непрямих об'єктів, байтові розміри джерела й результату та структуроване повідомлення про невдачуAllowSignedDocument, бо повний перезапис анулює наявні байтові діапазони підписів
Pdf.SaveAsReachable('pruned.pdf', Report);
WriteLn('Kept ', Report.KeptObjectCount, ' pruned ', Report.PrunedObjectCount);