Potrebbero esserci molte ragioni per sostituire una parola o una frase nel documento. Sia che tu voglia cancellare il contenuto sensibile prima di condividere pubblicamente il documento o che tu voglia nascondere/rimuovere tutte le informazioni private come ID e-mail o numeri di previdenza sociale, devi oscurare il contenuto del documento. Questo articolo ti guida su come redigere documenti di Word a livello di codice nelle tue applicazioni .NET usando C#. Discuteremo separatamente come redigere nascondendo il testo e come trovare e sostituire il testo, le parole o le frasi usando tecniche diverse.

Di seguito verranno trattati i seguenti argomenti:

API di redazione .NET per la sostituzione del testo

GroupDocs.Redaction for .NET è l’API di redazione dei documenti che consente di trovare e quindi sostituire i dati desiderati da documenti di vari formati di file. Insieme alla redazione del testo e alla rasterizzazione, l’API fornisce funzionalità di redazione di metadati, annotazioni, fogli di calcolo e immagini. I formati di file supportati di documenti Word, fogli di calcolo, presentazioni, immagini e documenti PDF sono disponibili nella documentazione.

Puoi scaricare il programma di installazione delle DLL o MSI dalla sezione download o installare l’API nella tua applicazione .NET tramite NuGet.

PM> Install-Package GroupDocs.Redaction

Non è necessario installare MS Office o qualsiasi altro software di terze parti in questo processo. Iniziamo ora e diamo un’occhiata ai diversi approcci per affrontare la ricerca e la sostituzione del testo nei documenti. Di seguito è riportato lo screenshot di un documento di Word utilizzato negli esempi a scopo dimostrativo. Gli stessi metodi funzioneranno per altri formati di documenti senza alcuna modifica nel codice.

Trova e sostituisci parole o frasi nel documento di Word usando C#

Il passaggio seguente spiega come trovare qualsiasi parola/frase in un documento di Word e quindi sostituisce tutte le occorrenze con altro testo all’interno dell’applicazione C#.

  • Carica il documento Word (DOC/DOCX) utilizzando la classe Redaction.
  • Trova la frase o la parola esatta, utilizzando la classe ExactPhraseRedaction con [ReplacementOptions](https://apiference.groupdocs. com/redaction/net/groupdocs.redaction.redactions/replacementoptions).
  • Utilizzare il metodo Applica di Redactor per applicare la redazione.
  • Salva le modifiche utilizzando il metodo Salva.

Il codice seguente trova e sostituisce la parola in C#. Più precisamente, sostituisce tutte le occorrenze di “John Doe” con “[censured]”.

// Trova la frase esatta e sostituiscila con un altro testo usando C#
using (Redactor redactor = new Redactor(@"path/document.docx"))
{
  redactor.Apply(new ExactPhraseRedaction("John Doe", new ReplacementOptions("[censored]")));
  redactor.Save();
}

L’output del codice è il seguente.

Cerca e sostituisci con distinzione tra maiuscole e minuscole nei file di Word utilizzando C#

Allo stesso modo, puoi eseguire la redazione con distinzione tra maiuscole e minuscole di un documento di Word trovando la parola esatta e sostituendola con qualsiasi altra. Il codice seguente sostituisce l’esistenza della parola “John Doe” in un file DOCX utilizzando C#, ma questa volta la ricerca farà distinzione tra maiuscole e minuscole.

// Trova la frase esatta (con distinzione tra maiuscole e minuscole) e sostituiscila con un altro testo usando C#
using (Redactor redactor = new Redactor(@"path/document.docx"))
{
  redactor.Apply(new ExactPhraseRedaction("John Doe", true /*isCaseSensitive*/, new ReplacementOptions("[censored]")));
  redactor.Save();
}

L’output del codice è il seguente.

Sostituisci il testo nei file di Word usando le espressioni regolari (RegEx) usando C#

Per trovare e sostituire qualsiasi modello di testo nei file di Word (DOC, DOCX) puoi utilizzare le espressioni regolari. I passaggi seguenti consentono di redigere un documento di Word con RegEx utilizzando C#.

  • Carica il documento di Word utilizzando la classe Redactor.
  • Trova la corrispondenza regolare utilizzando la classe RegexRedaction con [ReplacementOptions](https://apiference.groupdocs.com/redaction /net/groupdocs.redaction.redactions/replacementoptions).
  • Usa il metodo Apply per sostituire tutti i testi di corrispondenza regex.
  • Utilizzare il metodo Salva per ottenere il file Word redatto.

Il codice seguente mostra come trovare un modello di testo in un file di Word usando RegEx e quindi sostituirlo/nasconderlo con un altro testo usando C#.

// Trova il testo usando un'espressione regolare e sostituiscilo con un altro testo usando C#
using (Redactor redactor = new Redactor(@"path/document.docx"))
{
  redactor.Apply(new RegexRedaction("\\d{2}\\s*\\d{2}[^\\d]*\\d{6}", new ReplacementOptions("[censored]")));
  redactor.Save();
}

L’output del codice precedente è il seguente.

Nascondi il testo riservato nei documenti di Word con la casella colorata usando C#

Se non vuoi sostituire il tuo contenuto privato ma vuoi solo coprirlo, l’API ti consente di nascondere quel contenuto disegnandoci sopra un riquadro. Il codice seguente inserisce il rettangolo nero sul testo previsto per oscurare il testo usando C#.

// Trova il testo e nascondilo disegnandoci sopra un rettangolo usando C#
using (Redactor redactor = new Redactor(@"path/document.docx"))
{
  redactor.Apply(new ExactPhraseRedaction("John Doe", new ReplacementOptions(System.Drawing.Color.Black)));
  redactor.Save();
}

L’output del codice precedente è il seguente.

Ottieni una licenza API gratuita

Puoi ottenere una licenza temporanea gratuita per utilizzare l’API senza i limiti di valutazione.

Conclusione

Per concludere, hai imparato a trovare il testo nei file di Word (DOC, DOCX) utilizzando tecniche diverse e a sostituire i risultati in modi diversi. Più precisamente, abbiamo discusso come trovare testo, parola o frase anche se si tratta di una ricerca con distinzione tra maiuscole e minuscole o utilizzando un’espressione regolare in C#. Successivamente abbiamo sostituito i risultati della ricerca con un altro testo o posizionando la casella del rettangolo colorato sul testo cercato.

Per ulteriori informazioni sull’API, visitare documentation. Per domande, contattaci tramite il forum.

Guarda anche