PDFium Delphi Component Docs

Metoda SaveAsDeduplicated

Component: TPdf  ·  Unit: PDFium
Rescrie documentul ca o singură revizuire curată care mătură mai întâi obiectele inaccesibile și apoi comasează fonturile, imaginile și form XObject-urile compatibile pe un singur reprezentant comun

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 scrie mai întâi o copie neincrementală a documentului curent din memorie, apoi wrapperul efectuează o parcurgere de accesibilitate pe tot documentul și elimină fiecare obiect inaccesibil, exact ca SaveAsReachable

Fonturile, imaginile și form XObject-urile sunt apoi amprentate: fiecare dicționar candidat, subgraful său complet accesibil și payload-ul brut al fluxului său sunt hash-uite recursiv, astfel încât duplicatele fuzionează doar când întregul lor conținut este identic

Fiecare referință încrucișată care indica un duplicat comasat este rescrisă către reprezentantul supraviețuitor, iar numerele și generațiile obiectelor rămân stabile, deci fiecare referință încrucișată supraviețuitoare rămâne validă

Ieșirea este o singură revizuire clasică, fără object streams și fără flux de referințe încrucișate, iar trailerul reconstruit propagă /Root, /Info și /ID

Policies and limits

Example

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

See Also

SaveAsReachable, SaveAs, SaveAsNormalizedContent