PDFium Delphi Component Docs

SaveAsReachable метод

Component: TPdf  ·  Unit: PDFium
Переписує документ як одну чисту ревізію, що лишає лише непрямі об'єкти, досяжні з каталогу та словника /Info трейлера

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 спершу записує неінкрементну копію поточного документа в пам'яті, щоб перезапис починався з канонічних байтів

Далі розбирається граф об'єктів, і проходження досяжності по всьому документу з каталогу збирає кожен непрямий об'єкт, що вижив, зокрема дерево сторінок, ресурси сторінок, шрифти, зображення, Form XObjects, AcroForm, дерево структури, закладки, дерева імен, optional content, метадані, OutputIntent і пов'язані файли

Об'єкти, що лишилися недосяжними через інкрементні оновлення, об'єднання сторінок або відремонтовані збереження, відкидаються, а результатом є одна класична ревізія без потоків об'єктів і без потоку перехресних посилань

Номери об'єктів і покоління зберігаються, тож кожне перехресне посилання, що вижило, лишається чинним без перенумерації; недосяжні об'єкти стають вільними записами в перебудованій класичній таблиці перехресних посилань

Перебудований трейлер успадковує /Root, /Info і /ID, лише коли об'єкти, на які вони посилаються, пережили вимітання

Policies and limits

Example

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

See Also

SaveAs, SaveAsRepaired, SaveAsNormalizedContent