PDFium Component Docs

SaveAsSanitised methode

Component: TPdf  ·  Unit: PDFium
Schrijft een schone single-revision-kopie via begrensde catalog- en trailer-updates en snoeit daarna onbereikbare objecten weg, zodat orphaned JavaScript-, action-, attachment- en metadata-bodies uit de file body verdwijnen

Syntax

function SaveAsSanitised(Stream: TStream;
  const Options: TPdfSanitiseOptions;
  out Report: TPdfSanitiseReport): Boolean; overload;

function SaveAsSanitised(const FileName: string;
  const Options: TPdfSanitiseOptions;
  out Report: TPdfSanitiseReport): Boolean; overload;

Description

SaveAsSanitised produceert een gesaniseerde single-revision-PDF-kopie die active-content-vectoren uit de documentcatalogus verwijdert en daarna optioneel een reachability prune uitvoert om orphaned objecten uit de file body te elimineren

De tweefasige pijplijn stript eerst catalog-ingangen (/OpenAction, /AA, /Names, /AF, /AcroForm, /Metadata) via StripDictionaryEntries als incrementele update en draait daarna PruneUnreachablePdfStream om het bestand als één schone klassieke revisie te herschrijven

De catalog- en trailer-update gebruikt sparse xref-lookup, parserwindows van hooguit 1 MiB en het kopiëren van 64 KiB-bereiken op het normale xref-pad in plaats van de complete opgeslagen PDF in één byte-array te materialiseren

Wanneer pruning is ingeschakeld is de tussenliggende werkruimte een TPdfRandomAccessStore die door SaveMemoryLimit en SaveTemporaryDirectory wordt gestuurd; het piekgeheugen en de spill-status daarvan zijn opgenomen in LastSaveLargestMemoryBuffer en LastSaveSpillCount

Elke strip-vlag is onafhankelijk. TPdfSanitiseOptions.Default schakelt het volledige securityprofiel in: StripOpenAction, StripCatalogActions, StripNames, StripAssociatedFiles, plus de RemoveUnreachable-prune. StripAcroForm en StripMetadata staan standaard op False omdat ze formuliervelden en metadata verwijderen die aanroepers mogelijk willen houden

De uitvoer is altijd één revisie zonder incrementele geschiedenis wanneer RemoveUnreachable=True

Parameters

Remarks

Example

var
  Options: TPdfSanitiseOptions;
  Report: TPdfSanitiseReport;
begin
  Pdf1.FileName := 'C:\Untrusted.pdf';
  Pdf1.Active := True;
  Options := TPdfSanitiseOptions.Default;
  Pdf1.SaveAsSanitised('C:\Sanitised.pdf', Options, Report);
end;

See Also

SaveAsReachable, SaveAs, AuditActiveContent