PDFium Component Docs

SaveAsSanitised Metoda

Component: TPdf  ·  Unit: PDFium
Zapisuje czystą kopię w pojedynczej rewizji przez ograniczone aktualizacje katalogu i traileru, a następnie przycina obiekty nieosiągalne, tak aby osierocone treści JavaScript, akcji, załączników i metadanych zniknęły z korpusu pliku

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 tworzy odkażoną kopię PDF w pojedynczej rewizji, która usuwa wektory aktywnej treści z katalogu dokumentu, a następnie opcjonalnie uruchamia przycinanie osiągalności, aby wyeliminować osierocone obiekty z korpusu pliku

Dwustopniowy potok najpierw zdejmuje wpisy katalogu (/OpenAction, /AA, /Names, /AF, /AcroForm, /Metadata) przez StripDictionaryEntries jako aktualizację przyrostową, a potem uruchamia PruneUnreachablePdfStream, aby przepisać plik jako jedną czystą klasyczną rewizję

Aktualizacja katalogu i traileru używa rzadkiego wyszukiwania xref, okien parsera nie większych niż 1 MiB i kopiowania zakresów po 64 KiB na normalnej ścieżce xref, zamiast materializować kompletny zapisany PDF w jednej tablicy bajtów

Gdy przycinanie jest włączone, obszarem roboczym pośrednim jest TPdfRandomAccessStore rządzony przez SaveMemoryLimit i SaveTemporaryDirectory Jego pamięć szczytowa i stan przelewania są wliczane do LastSaveLargestMemoryBuffer i LastSaveSpillCount

Każda flaga zdejmowania jest niezależna TPdfSanitiseOptions.Default włącza pełny profil bezpieczeństwa: StripOpenAction, StripCatalogActions, StripNames, StripAssociatedFiles oraz przycinanie RemoveUnreachable. StripAcroForm i StripMetadata domyślnie mają False, ponieważ usuwają pola formularzy i metadane, które wywołujący może chcieć zachować

Wyjście jest zawsze pojedynczą rewizją bez historii przyrostowej, gdy 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