PDFium Delphi Component Docs

Méthode SaveAsRedacted

Composant : TPdf  ·  Unité : PDFium
Applique les annotations de caviardage PDF à un instantané isolé et écrit un résultat propre à révision unique sans modifier le document chargé

Syntaxe

function SaveAsRedacted(Stream: TStream;
  const Options: TPdfRedactionOptions;
  out Report: TPdfRedactionReport): Boolean; overload;

function SaveAsRedacted(const FileName: string;
  const Options: TPdfRedactionOptions;
  out Report: TPdfRedactionReport): Boolean; overload;

Description

SaveAsRedacted capture le document courant dans un instantané à accès direct isolé, ouvre cet instantané comme un TPdf séparé et traite chaque rectangle d’annotation /Redact

Les options par défaut activent PreservePartialObjects et PreserveComplexObjects pour conserver la géométrie sûre prise en charge ; ce profil borné reconstruit le texte depuis les fragments de caractères conservés, découpe les tracés remplis unis et efface les pixels concernés des images affines

Dès qu’une annotation de caviardage existe, le profil détaillé développe chaque instance Form XObject de chaque page, y compris celles sans caviardage, avant l’application ; les transformations d’instance sont composées et les flux Form partagés originaux peuvent être supprimés par élagage des ressources

Mettez PreservePartialObjects := False pour supprimer les objets entiers intersectés, ou gardez-le actif avec PreserveComplexObjects := False pour le profil simple de fragmentation du texte, rectangles et images alignés sur les axes ; les contrôles de sûreté source s’appliquent aux trois profils

La méthode retire toutes les annotations de caviardage, éventuellement les autres annotations intersectées, les annotations de pièce jointe des pages caviardées et les pièces jointes natives incorporées ; elle réécrit une version assainie sans /AF du catalogue, contenu actif, formulaires, métadonnées ni objets inaccessibles

Une fois le contenu de page régénéré, un élagage précis des ressources balaie les portées de ressources de pages, de Form XObject, de motifs, d’apparences, héritées et imbriquées et ne supprime que les noms inutilisés avant que les objets inatteignables ne soient jetés

La sortie contient une seule révision propre sans anciennes révisions ; le document source chargé reste intact ; une sémantique source ou une géométrie détaillée non prise en charge interrompt l’opération plutôt que de produire un résultat partiellement caviardé

Options

Ces options Form, tracé, image, géométrie et tolérance sont validées et utilisées par le profil détaillé ; elles n’augmentent pas les budgets indépendants d’inspection source

Rapport

TPdfRedactionReport renvoie RedactionCount, RedactedPageCount, ScannedObjectCount, RemovedObjectCount, RemovedAnnotationCount, RemovedAttachmentCount, OverlayCount, SplitTextObjectCount, SplitPathObjectCount, SplitImageObjectCount, PreservedFragmentCount, les compteurs d’octets, les SanitiseReport et ResourcePruneReport imbriqués, Succeeded et ErrorMessage

Le profil détaillé ajoute ExpandedFormCount, ScannedFormChildCount, FlattenedCurveCount, GeneratedPathPointCount, MaskedImageCount, ScannedImagePixelCount, MaskedImagePixelCount, PixelIntersectionTestCount et GeometryOperationCount ; CurveTolerancePdfPoints consigne la tolérance après réussite

ScannedFormChildCount compte les objets natifs visités pendant le développement, instances racines comprises ; GeneratedPathPointCount comprend les points intermédiaires de découpage et les points d’aplatissement

MaskedImagePixelCount compte les pixels dont tous les échantillons de couleur et d’alpha sont effacés ; PreservedFragmentCount compte les objets de remplacement, pas les pixels ou contours ; en cas d’échec, les compteurs peuvent être partiels et ne prouvent pas une sortie validée

Limites de sécurité

Exemple

var
  Options: TPdfRedactionOptions;
  Report: TPdfRedactionReport;
begin
  Options := TPdfRedactionOptions.Default;
  Options.FillColor := clBlack;
  if not Pdf1.SaveAsRedacted('C:\redacted.pdf', Options, Report) then
    raise Exception.Create(Report.ErrorMessage);
end;

Voir aussi

SaveAsSanitised, SaveAsReachable, CreateAnnotation, helpers géométriques FPdfRedaction