PDFium Component Docs

SaveAsDeduplicated Metoda

Component: TPdf  ·  Unit: PDFium
Przepisuje dokument jako pojedynczą czystą rewizję, która najpierw usuwa obiekty nieosiągalne, a następnie scala zgodne czcionki, obrazy i XObjecty formularzy na jeden współdzielony reprezentant

Syntax

function SaveAsDeduplicated(Stream: TStream; out Report: TPdfDedupReport; AllowSignedDocument: Boolean = False): Boolean;

function SaveAsDeduplicated(const FileName: string; out Report: TPdfDedupReport; AllowSignedDocument: Boolean = False): Boolean;

Description

PDFium najpierw zapisuje nieprzyrostową kopię bieżącego dokumentu w pamięci, a następnie otoczka wykonuje pełne przejście osiągalności po dokumencie i porzuca każdy nieosiągalny obiekt dokładnie tak jak SaveAsReachable

Potem czcionki, obrazy i XObjecty formularzy otrzymują odciski: każdy słownik kandydat, jego pełny osiągalny podgraf i jego surowy ładunek strumienia są haszowane rekurencyjnie, dzięki czemu duplikaty są scalane tylko wtedy, gdy ich cała treść jest identyczna

Każde odwołanie krzyżowe, które wskazywało scalony duplikat, jest przepisywane na przetrwałego reprezentanta, a numery obiektów i generacje pozostają stabilne, dzięki czemu każde zachowane odwołanie krzyżowe pozostaje ważne

Wynikiem jest pojedyncza klasyczna rewizja bez strumieni obiektów i bez strumienia odwołań krzyżowych, a przebudowany trailer przenosi dalej /Root, /Info i /ID

Policies and limits

Example

Pdf.SaveAsDeduplicated('deduplicated.pdf', Report);
WriteLn('merged ', Report.MergedImageCount, ' images');

See Also

SaveAsReachable, SaveAs, SaveAsNormalizedContent