/Info trailerufunction SaveAsReachable(Stream: TStream; out Report: TPdfPruneReport; AllowSignedDocument: Boolean = False): Boolean;
function SaveAsReachable(const FileName: string; out Report: TPdfPruneReport; AllowSignedDocument: Boolean = False): Boolean;
PDFium najpierw zapisuje nieprzyrostową kopię bieżącego dokumentu w pamięci, aby przepisanie startowało z kanonicznych bajtów
Następnie graf obiektów jest parsowany, a pełne przejście osiągalności od katalogu zbiera każdy zachowany obiekt pośredni, w tym drzewo stron, zasoby stron, czcionki, obrazy, XObjecty formularzy, AcroForm, drzewo struktury, konspekty, drzewa nazw, treść opcjonalną, metadane, intencje wyjściowe i powiązane pliki
Obiekty pozostawione nieosiągalne przez aktualizacje przyrostowe, scalanie stron lub naprawione zapisy są porzucane, a wynikiem jest pojedyncza klasyczna rewizja bez strumieni obiektów i bez strumienia odwołań krzyżowych
Numery obiektów i generacje są zachowywane, więc każde zachowane odwołanie krzyżowe pozostaje ważne bez przenumerowania; obiekty nieosiągalne stają się wolnymi wpisami w przebudowanej klasycznej tablicy odwołań krzyżowych
Przebudowany trailer przenosi dalej /Root, /Info i /ID tylko wtedy, gdy odwoływane obiekty przetrwały czyszczenie
TPdfPruneReport raportuje liczby zachowanych i usuniętych obiektów pośrednich, rozmiary bajtowe źródła i wyjścia oraz ustrukturyzowany komunikat niepowodzeniaAllowSignedDocument zostało jawnie włączone, ponieważ pełne przepisanie unieważnia istniejące zakresy bajtowe podpisów
Pdf.SaveAsReachable('pruned.pdf', Report);
WriteLn('Kept ', Report.KeptObjectCount, ' pruned ', Report.PrunedObjectCount);