PDFium Delphi Component Docs

SaveAsSanitised metode

Komponent: TPdf  ·  Enhed: PDFium
Skriver en ren enkeltrevisions-kopi gennem afgrænsede katalog- og trailer-opdateringer og beskærer derefter uopnåelige objekter, så forældreløse JavaScript-, action-, vedhæftnings- og metadatakroppe forsvinder fra filkroppen

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 producerer en saniteret enkeltrevisions-PDF-kopi, der fjerner aktive indholdsvektorer fra dokumentkataloget og derefter valgfrit kører en reachability-beskæring for at eliminere forældreløse objekter fra filkroppen

To-trins-pipelinen stripper først katalogposter (/OpenAction, /AA, /Names, /AF, /AcroForm, /Metadata) via StripDictionaryEntries som en inkrementel opdatering og kører derefter PruneUnreachablePdfStream for at omskrive filen som én ren klassisk revision

Katalog- og trailer-opdateringen bruger sparse xref-opslag, parservinduer på højst 1 MiB og 64 KiB range-kopiering på den normale xref-sti i stedet for at materialisere den komplette gemte PDF i én byte-array

Når beskæring er slået til, er det mellemliggende workspace en TPdfRandomAccessStore styret af SaveMemoryLimit og SaveTemporaryDirectory Dens peak-hukommelse og spill-tilstand indgår i LastSaveLargestMemoryBuffer og LastSaveSpillCount

Hvert strip-flag er uafhængigt. TPdfSanitiseOptions.Default aktiverer den fulde sikkerhedsprofil: StripOpenAction, StripCatalogActions, StripNames, StripAssociatedFiles plus RemoveUnreachable-beskæring. StripAcroForm og StripMetadata er som standard False, fordi de fjerner formularfelter og metadata, som kaldere måske vil beholde

Outputtet er altid én revision uden inkrementel historik, når 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