Come redigere il contenuto PDF in TypeScript
Questa guida mostra come redigere il contenuto PDF con Aspose.PDF FOSS per TypeScript. Page.AddRedact() segna una regione; Page.ApplyRedactions() riscrive distruttivamente lo stream di contenuto in modo che i glifi sotto ogni regione contrassegnata vengano rimossi. I segni lasciati non applicati rimangono come normali annotazioni selezionabili e copiabili. Richiede Node.js 22 o versioni successive.
Guida passo passo
Passo 1: Installa il pacchetto
git clone https://github.com/aspose-pdf-foss/Aspose.PDF-FOSS-for-TypeScript.git
cd Aspose.PDF-FOSS-for-TypeScript
npm install
npm run buildVerifica l’installazione importando la classe Document in un nuovo file TypeScript — questa riga dovrebbe risolversi senza errori una volta che il pacchetto è installato:
import { Document } from '@asposefoss/pdf';Passo 2: Importa le classi richieste
Importa Document per aprire il file; AddRedact() e ApplyRedactions() vengono chiamati direttamente sulle istanze Page che restituisce:
import { Document } from '@asposefoss/pdf';Passo 3: Contrassegnare un’area per la redazione
Page.AddRedact(opts) disegna un RedactAnnotation sopra rect. fill imposta il colore dipinto sull’area una volta applicato, e overlayText (con align, fontSize, textColor) stampa un’etichetta di sostituzione come [REDACTED]:
const doc = Document.OpenFile('memo.pdf');
const page = doc.Pages[0];
page.AddRedact({
rect: [216, 548, 460, 566],
fill: [0, 0, 0],
overlayText: '[REDACTED]',
align: 'center',
fontSize: 9,
textColor: [1, 1, 1],
});Passo 4: Applicare le redazioni
Page.ApplyRedactions() riscrive distruttivamente il flusso di contenuto — i glifi all’interno di ogni RedactAnnotation contrassegnato sulla pagina scompaiono definitivamente, e i segni applicati vengono rimossi. I segni aggiunti dopo questa chiamata rimangono non applicati: il valore sotto di essi è ancora leggibile e rimane selezionabile per la copia:
page.ApplyRedactions();
doc.WriteTo('memo-redacted.pdf');Problemi comuni e soluzioni
Un segno di redazione mostra il riquadro nero ma il testo sottostante può ancora essere copiato. Page.ApplyRedactions() non è mai stato chiamato (o è stato chiamato prima che il segno fosse aggiunto). Segnare con AddRedact() da solo disegna solo un’annotazione sulla regione — il contenuto sottostante viene distrutto solo una volta ApplyRedactions() viene eseguito.
ApplyRedactions() contenuto rimosso dal segno rect non copriva. rect è la regione esatta riscritta — testo o immagini che si sovrappongono solo parzialmente possono ancora essere parzialmente distrutti al confine. I segni di dimensione dovrebbero essere generosi intorno al contenuto target.
I risultati della ricerca non possono essere passati direttamente a Page.AddRedact(). Un risultato da Page.SearchAnnotationText() contiene metadati di annotazione, non la geometria della pagina — non ha la stessa forma del rect an AddRedact() segno atteso. Page.MarkRedactText(find, opts) and Page.RedactText(find, opts) sono i punti di ingresso per la censura tramite ricerca testuale, e entrambi sono disponibili anche al Document livello per eseguire una scansione di tutte le pagine in una sola chiamata.
Una censura sopravvive alla crittografia in modo inaspettato. Censura e crittografia sono operazioni indipendenti — applica le censure prima di salvare con encrypt opzioni se l’obiettivo è sia rimuovere il contenuto sia limitare l’accesso a ciò che resta; applicare nell’ordine inverso non annulla un salvataggio già crittografato.
Domande Frequenti
Qual è la differenza tra contrassegnare e applicare una censura?
AddRedact() crea solo un’annotazione che descrive dove è prevista una censura — il contenuto coperto rimane intatto e ancora selezionabile/copiabile finché non viene eseguito ApplyRedactions() e riscrive distruttivamente la pagina.
Posso censurare cercando del testo invece di specificare un rettangolo?
Sì — Page.MarkRedactText(find, opts) contrassegna ogni corrispondenza di find per un’applicazione successiva, e Page.RedactText(find, opts) contrassegna e applica in una singola chiamata. Entrambi esistono anche su Document per scandire l’intero documento.
Il ApplyRedactions() influisce sulle annotazioni diverse dalle marcature di redazione?
No — riscrive il flusso di contenuto sotto le proprie marcature RedactAnnotation; gli altri tipi di annotazione nella pagina non vengono toccati da questa chiamata.
Una redazione è reversibile?
No — ApplyRedactions() è distruttivo. Conserva il file originale se il contenuto non redatto deve poter essere recuperato in seguito.