PDFium Delphi Component Docs

SaveAsSanitised Méthode

Composant: TPdf  ·  Unit: PDFium
Écrit une copie propre à révision unique par des mises à jour bornées du catalogue et du trailer, puis élague les objets inatteignables afin que les corps orphelins de JavaScript, d’actions, de pièces jointes et de métadonnées disparaissent du corps du fichier

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 produit une copie PDF assainie à révision unique qui retire les vecteurs de contenu actif du catalogue du document puis exécute facultativement un élagage d’accessibilité pour éliminer les objets orphelins du corps du fichier

Le pipeline en deux étapes retire d’abord les entrées du catalogue (/OpenAction, /AA, /Names, /AF, /AcroForm, /Metadata) via StripDictionaryEntries sous forme de mise à jour incrémentale, puis exécute PruneUnreachablePdfStream pour réécrire le fichier comme une seule révision classique propre

La mise à jour du catalogue et du trailer utilise une recherche xref creuse, des fenêtres d’analyse de 1 Mio au plus et une copie de plages de 64 Kio sur le chemin xref normal au lieu de matérialiser le PDF enregistré complet dans un seul tableau d’octets

Lorsque l’élagage est activé, l’espace de travail intermédiaire est un TPdfRandomAccessStore régi par SaveMemoryLimit et SaveTemporaryDirectory Sa mémoire au pic et son état de débordement figurent dans LastSaveLargestMemoryBuffer et LastSaveSpillCount

Chaque indicateur de retrait est indépendant TPdfSanitiseOptions.Default active le profil de sécurité complet : StripOpenAction, StripCatalogActions, StripNames, StripAssociatedFiles, plus l’élagage RemoveUnreachable. StripAcroForm et StripMetadata valent False par défaut car ils retirent des champs de formulaire et des métadonnées que les appelants peuvent vouloir conserver

La sortie est toujours une révision unique sans historique incrémental lorsque 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