Redaction
Redaction
Cette page couvre la suppression permanente de contenu d’une page PDF. Aspose.PDF FOSS pour TypeScript propose deux flux de rédaction : un flux à deux phases marquer-puis-appliquer que vous examinez avant de valider, et un flux immédiat en un seul appel. Les deux sont disponibles sur Page pour une page unique et sur Document pour le document entier.
Marquage et application des rédactions
Page.AddRedact() marque une région rectangulaire avec une annotation /Redact — le contenu en dessous reste intact et reste sélectionnable pour copie. Rien n’est réellement supprimé tant que Page.ApplyRedactions() n’est pas exécuté: il réécrit de façon destructive le flux de contenu pour chaque marque /Redact sur la page, peint le superposé de chaque marque (son remplissage /IC et /OverlayText), supprime les marques, et renvoie le nombre de rédactions appliquées. Les marques ajoutées après l’appel de ApplyRedactions() restent non appliquées.
page.AddRedact({
rect: [220, 550, 460, 566],
fill: [0, 0, 0],
overlayText: '[REDACTED]',
align: 'center',
fontSize: 9,
textColor: [1, 1, 1],
});
const applied = page.ApplyRedactions();
console.log('Redactions applied:', applied);Rédaction immédiate
Page.Redact() et Page.RedactText() combinent le marquage et l’application en un seul appel: ils suppriment réellement le texte et les images couverts, éliminent les ressources laissées orphelines par la suppression, et peignent une boîte de marqueur opaque sur chaque région — sans étape ApplyRedactions() séparée et sans rien à examiner au préalable. Page.Redact() prend une liste explicite de régions Rect; Page.RedactText() trouve et rédige chaque occurrence d’une chaîne de recherche ou de RegExp, de la même manière que les recherches Page.SearchAnnotationText(). Les deux acceptent un objet RedactOptions contrôlant le color du marqueur, s’il faut scrubMetadata, et s’il faut keepAnnotations qui chevauchent une région rédigée.
Comme ils suppriment le contenu immédiatement sans étape de révision, privilégiez AddRedact() + ApplyRedactions() lorsqu’une marque doit être inspectable avant d’être validée, et Redact() / RedactText() lorsque les régions ou les termes de recherche sont déjà considérés comme sûrs à supprimer.
Censurer un document complet
Les mêmes deux flux de travail existent sur Document, appliqués à chaque page simultanément: Document.MarkRedactText() marque chaque occurrence d’un terme de recherche sur toutes les pages, Document.ApplyRedactions() applique chaque marque dans le document, et Document.Redact()/Document.RedactText() censurent immédiatement les régions d’une page unique ou un terme de recherche à l’échelle du document, en reflétant leurs équivalents Page.
Conseils et bonnes pratiques
- Utilisez
AddRedact()+ApplyRedactions()lorsqu’une censure doit être révisable avant d’être appliquée; utilisezRedact()/RedactText()lorsque les régions sont déjà confirmées comme sûres à supprimer immédiatement. - Ajoutez chaque marque
AddRedact()pour une page avant d’appelerApplyRedactions()— les marques ajoutées après ne sont pas incluses dans cet appel et restent non appliquées. - Transmettez
scrubMetadata: truedansRedactOptions/ApplyRedactionsOptionslorsque le contenu censuré peut également être présent dans les métadonnées du document (/Infoou XMP). RedactText()etMarkRedactText()recherchent selon les mêmes règles de correspondance queSearchAnnotationText()/Search, ainsi une chaîne de recherche qui ne correspond pas là-bas échouera également à censurer.
Problèmes courants
| Problème | Cause | Correction |
|---|---|---|
| La marque de rédaction n’a aucun effet | Page.ApplyRedactions() n’a jamais été appelé | Appelez Page.AddRedact() pour chaque marque d’abord, puis Page.ApplyRedactions() une fois |
| Le contenu reste récupérable après une marque | La marque a utilisé AddRedact() (marque-seulement) sans appel suivant de ApplyRedactions() | Appelez ApplyRedactions(), ou utilisez Redact() / RedactText() pour une suppression en un appel |
| Le texte censuré réapparaît dans les métadonnées du document extrait | scrubMetadata n’était pas défini | Passez { scrubMetadata: true } dans l’objet d’options |
ApplyRedactions() renvoie 0 | Aucun marqueur /Redact n’existait sur la page au moment de son appel | Confirmez que AddRedact() (ou MarkRedactText()) s’est exécuté en premier et a ciblé la même page |
FAQ
Quelle est la différence entre AddRedact et Redact?
AddRedact() ne fait que marquer une région — le contenu est toujours présent et sélectionnable jusqu’à ce que ApplyRedactions() s’exécute. Redact() supprime le contenu dans le même appel, sans étape d’application séparée.
Puis-je redact en recherchant du texte au lieu de spécifier des coordonnées?
Oui. RedactText() trouve et redact immédiatement chaque occurrence d’une chaîne de recherche ou de RegExp; MarkRedactText() fait de même mais ne fait que marquer les correspondances, les laissant pour un appel ultérieur de ApplyRedactions().
La redaction fonctionne-t-elle sur l’ensemble du document ou seulement une page à la fois?
Les deux. Page.Redact() / Page.ApplyRedactions() et leurs homologues opèrent sur une page ; Document.Redact() / Document.ApplyRedactions() et leurs homologues opèrent sur toutes les pages.
Les annotations près d’une région redacted sont-elles également supprimées?
Seulement si vous les laissez tels quels. Passez keepAnnotations: true dans l’objet d’options pour préserver les annotations qui chevauchent une région censurée au lieu de les supprimer avec celle-ci.
Résumé API Reference
| Classe/Méthode | Description |
|---|---|
Page.AddRedact() | Marquez une région rectangulaire avec une annotation /Redact, sans encore supprimer le contenu |
Page.ApplyRedactions() | Supprimez de manière destructive chaque région marquée sur la page et renvoyez le nombre appliqué |
Page.Redact() | Supprimez immédiatement le contenu dans les régions données, sans étape d’application séparée |
Page.RedactText() | Trouvez et redactez immédiatement chaque occurrence d’une chaîne de recherche ou RegExp |
Page.MarkRedactText() | Trouver et marquer (sans appliquer) chaque occurrence d’une chaîne de recherche ou RegExp |
Document.ApplyRedactions() | Appliquer chaque marque /Redact sur l’ensemble du document |
Document.Redact() / Document.RedactText() | Caviarder immédiatement les zones sur une page, ou un terme de recherche sur chaque page |
Document.MarkRedactText() | Marquer chaque occurrence d’un terme de recherche sur chaque page |