Redaction
Redaction
Questa pagina tratta della rimozione permanente del contenuto da una pagina PDF. Aspose.PDF FOSS per TypeScript offre due flussi di redazione: un flusso a due fasi, segna-poi-applica, che puoi revisionare prima di confermare, e un flusso immediato a chiamata singola. Entrambi sono disponibili su Page per una singola pagina e su Document per l’intero documento.
Marcatura e Applicazione delle Redazioni
Page.AddRedact() segna una regione rettangolare con un’annotazione /Redact — il contenuto sottostante rimane intatto e ancora selezionabile per la copia. Nulla viene effettivamente rimosso finché non viene eseguito Page.ApplyRedactions(): riscrive distruttivamente il flusso di contenuto per ogni segno /Redact sulla pagina, dipinge la sovrapposizione di ciascun segno (il suo /IC riempimento e /OverlayText), rimuove i segni e restituisce il numero di redazioni applicate. I segni aggiunti dopo la chiamata a ApplyRedactions() rimangono non applicati.
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);Redazione Immediata
Page.Redact() e Page.RedactText() combinano la marcatura e l’applicazione in una singola chiamata: rimuovono davvero il testo e le immagini coperti, potano le risorse rimaste orfane dalla rimozione e dipingono una casella di marcatura opaca su ogni regione — senza un passaggio ApplyRedactions() separato e senza nulla da revisionare prima. Page.Redact() accetta un elenco esplicito di regioni Rect; Page.RedactText() trova e redige ogni occorrenza di una stringa di ricerca o RegExp, nello stesso modo in cui Page.SearchAnnotationText() effettua le ricerche. Entrambi accettano un oggetto RedactOptions che controlla il color del marcatore, se scrubMetadata, e se keepAnnotations che si sovrappongono a una regione redatta.
Poiché rimuovono il contenuto immediatamente senza passaggio di revisione, preferisci AddRedact() + ApplyRedactions() quando un segno deve essere ispezionabile prima di essere confermato, e Redact() / RedactText() quando le regioni o i termini di ricerca sono già noti come sicuri da rimuovere.
Redazione di un Documento Intero
Gli stessi due flussi di lavoro esistono su Document, con ambito su tutte le pagine contemporaneamente: Document.MarkRedactText() contrassegna ogni occorrenza di un termine di ricerca su tutte le pagine, Document.ApplyRedactions() applica ogni contrassegno nel documento, e Document.Redact() / Document.RedactText() censurano immediatamente le regioni di una singola pagina o un termine di ricerca a livello di documento, rispecchiando le loro equivalenti Page.
Suggerimenti e Best Practice
- Usa
AddRedact()+ApplyRedactions()quando una censura deve poter essere revisionata prima di entrare in vigore; usaRedact()/RedactText()quando le regioni sono già confermate sicure da rimuovere immediatamente. - Aggiungi ogni contrassegno
AddRedact()per una pagina prima di chiamareApplyRedactions()— i contrassegni aggiunti successivamente non sono inclusi in quella chiamata e rimangono non applicati. - Passa
scrubMetadata: trueinRedactOptions/ApplyRedactionsOptionsquando il contenuto censurato potrebbe essere presente anche nei metadati del documento (/Infoo XMP). RedactText()eMarkRedactText()effettuano la ricerca con le stesse regole di corrispondenza diSearchAnnotationText()/Search, quindi una stringa di ricerca che non corrisponde lì non riuscirà nemmeno a censurare.
Problemi Comuni
| Problema | Cause | Correzione |
|---|---|---|
| Il marcatore di redazione non ha effetto | Page.ApplyRedactions() non è mai stato chiamato | Chiama Page.AddRedact() per ogni segno prima, poi Page.ApplyRedactions() una volta |
| Il contenuto è ancora recuperabile dopo un segno | Il segno ha usato AddRedact() (solo segno) senza una successiva chiamata a ApplyRedactions() | Chiama ApplyRedactions(), o usa Redact() / RedactText() per la rimozione con una sola chiamata |
| Il testo redatto ricompare nei metadati del documento estratto | scrubMetadata non è stato impostato | Passa { scrubMetadata: true } nell’oggetto delle opzioni |
ApplyRedactions() restituisce 0 | Nessun segno /Redact era presente nella pagina al momento della chiamata | Conferma che AddRedact() (o MarkRedactText()) sia stato eseguito per primo e abbia mirato alla stessa pagina |
FAQ
Qual è la differenza tra AddRedact e Redact?
AddRedact() segna solo una regione — il contenuto è ancora presente e selezionabile fino a quando ApplyRedactions() viene eseguito. Redact() rimuove il contenuto nella stessa chiamata, senza un passaggio di applicazione separato.
Posso censurare cercando del testo invece di specificare le coordinate?
Sì. RedactText() trova e censura immediatamente ogni occorrenza di una stringa di ricerca o RegExp; MarkRedactText() fa lo stesso ma segna solo le corrispondenze, lasciandole per una successiva chiamata a ApplyRedactions().
La censura funziona su tutto il documento o solo una pagina alla volta?
Entrambi. Page.Redact() / Page.ApplyRedactions() e i loro fratelli operano su una pagina; Document.Redact() / Document.ApplyRedactions() e i loro fratelli operano su tutte le pagine.
Vengono rimosse anche le annotazioni vicino a una regione censurata?
Solo se li lasci così. Passa keepAnnotations: true nell’oggetto options per preservare le annotazioni che si sovrappongono a una regione redatta invece di rimuoverle insieme ad essa.
API Reference Riepilogo
| Classe/Metodo | Descrizione |
|---|---|
Page.AddRedact() | Contrassegna una regione rettangolare con un’annotazione /Redact, senza rimuovere ancora il contenuto |
Page.ApplyRedactions() | Rimuovi in modo distruttivo ogni regione contrassegnata nella pagina e restituisci il conteggio applicato |
Page.Redact() | Rimuovi immediatamente il contenuto nelle regioni indicate, senza una fase di applicazione separata |
Page.RedactText() | Trova e redigi immediatamente ogni occorrenza di una stringa di ricerca o RegExp |
Page.MarkRedactText() | Trova e segna (senza applicare) ogni occorrenza di una stringa di ricerca o RegExp |
Document.ApplyRedactions() | Applica ogni segno /Redact su tutto il documento |
Document.Redact() / Document.RedactText() | Oscura immediatamente le regioni su una pagina, o un termine di ricerca su ogni pagina |
Document.MarkRedactText() | Segna ogni occorrenza di un termine di ricerca su ogni pagina |