/Info-dictionary van de trailerfunction SaveAsReachable(Stream: TStream; out Report: TPdfPruneReport; AllowSignedDocument: Boolean = False): Boolean;
function SaveAsReachable(const FileName: string; out Report: TPdfPruneReport; AllowSignedDocument: Boolean = False): Boolean;
PDFium schrijft eerst een niet-incrementele kopie van het huidige in-memory document, zodat de herschrijving vanuit canonieke bytes begint
De objectgraph wordt vervolgens geparseerd en een documentbrede bereikbaarheidswandeling vanuit de catalogus verzamelt elk overlevend indirect object, inclusief de paginaboom, paginabronnen, lettertypen, afbeeldingen, formulier-XObjects, AcroForm, structuurbomen, outlines, naamboomstructuren, optionele content, metadata, output intents en gekoppelde bestanden
Objecten die door incrementele updates, paginasamenvoegingen of gerepareerde opslagen onbereikbaar zijn geworden, worden laten vallen, en de uitvoer is één klassieke revisie zonder object streams en zonder cross-reference stream
Objectnummers en generaties blijven behouden, dus elke overlevende kruisverwijzing blijft geldig zonder hernummering; onbereikbare objecten worden vrije vermeldingen in de herbouwde klassieke cross-reference-tabel
De herbouwde trailer draagt /Root, /Info en /ID alleen over wanneer de gerefereerde objecten de schoonmaak overleefden
TPdfPruneReport rapporteert de aantallen gehandhaafde en gesnoeide indirecte objecten, de bron- en uitvoerbytegroottes en een gestructureerde foutmeldingAllowSignedDocument expliciet is ingeschakeld, omdat een volledige herschrijving bestaande handtekeningbytebereiken ongeldig maakt
Pdf.SaveAsReachable('pruned.pdf', Report);
WriteLn('Kept ', Report.KeptObjectCount, ' pruned ', Report.PrunedObjectCount);