In uno degli articoli, abbiamo già discusso come oscurare le parole nei documenti come sviluppatore .NET. La strategia viene utilizzata in molti modi per cancellare contenuti sensibili, nascondere o rimuovere informazioni private come indirizzi e-mail o numeri di identificazione. Questo articolo illustra come eseguire la ricerca di parole nei documenti Word DOC/DOCX in Java. Discuteremo separatamente come trovare e sostituire il testo, le parole o le frasi con tecniche diverse utilizzando l’API Java per la redazione.

Di seguito verranno trattati i seguenti argomenti:

API Java per la ricerca di parole e la sostituzione del testo

GroupDocs fornisce un’API di redazione Java che consente di trovare e sostituire il contenuto dei file supportati da MS Word e altri documenti di vari altri formati di file. Oltre alla redazione e alla rasterizzazione del testo, l’API supporta metadati, annotazioni, fogli di calcolo e anche le funzionalità di redazione delle immagini. I formati di file supportati dei documenti Word, fogli di calcolo, presentazioni, immagini e documenti PDF sono disponibili nella documentazione.

Scarica o configura

Puoi scaricare il file JAR dalla sezione download, o semplicemente ottenere l’ultimo repository e le configurazioni delle dipendenze per il pom.xml delle tue applicazioni Java basate su maven.

<repository>
	<id>GroupDocsJavaAPI</id>
	<name>GroupDocs Java API</name>
	<url>https://repository.groupdocs.com/repo/</url>
</repository>
<dependency>
        <groupId>com.groupdocs</groupId>
        <artifactId>groupdocs-redaction</artifactId>
        <version>21.12</version> 
</dependency>

MS Word o qualsiasi altro software di terze parti non è necessario per il processo di redazione. Iniziamo ora con diversi approcci per gestire la ricerca e la sostituzione del testo. Di seguito è riportato lo screenshot di un documento Word utilizzato negli esempi seguenti. È possibile utilizzare gli stessi metodi anche per altri formati di documento con modifiche minime o nulle nel codice sorgente.

Documento per redigere il testo

Trova e sostituisci parole o frasi utilizzando Java

I seguenti passaggi spiegano come trovare e quindi sostituire le occorrenze di una parola/frase in un documento Word all’interno dell’applicazione Java.

  • Carica il file DOC/DOCX utilizzando la classe Redactor.
  • Trova la frase o la parola esatta, utilizzando le classi ExactPhraseRedaction e ReplacementOptions.
  • Utilizzare il metodo apply di Redactor per applicare la redazione.
  • Per salvare il file in una posizione diversa dopo aver apportato le modifiche, utilizzare il flusso di output.
  • Salvare le modifiche alla redazione utilizzando il metodo di salvataggio.

Il codice seguente trova e sostituisce la parola “John Doe” nel documento Word precedente utilizzando Java. Sostituisce tutte le occorrenze di “John Doe” con la parola “[censored]”.

// Trova la frase esatta e sostituiscila con un altro testo usando Java
final Redactor redactor  = new Redactor("path/document.docx");
redactor.apply(new ExactPhraseRedaction("John Doe", new ReplacementOptions("[censored]")));
// Se si desidera salvare il file oscurato in una posizione diversa con un nome diverso.
FileOutputStream stream = new FileOutputStream("path/exactPhrase.docx");
RasterizationOptions rasterOptions = new RasterizationOptions();
rasterOptions.setEnabled(false);
redactor.save(stream, rasterOptions);

L’output del codice è il seguente.

Redigere utilizzando la frase esatta

Ricerca di parole con distinzione tra maiuscole e minuscole e sostituzione di testo in Java

Sembri cauto riguardo all’esatta lettera maiuscola della parola e desideri sostituire solo la parola che corrisponde solo alla tua ricerca con distinzione tra maiuscole e minuscole. Il codice seguente sostituisce l’esistenza della corrispondenza esatta tra maiuscole e minuscole della parola “John Doe” in Java.

// Trova la frase esatta (con distinzione tra maiuscole e minuscole) e sostituiscila con un altro testo utilizzando Java
final 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.

Redazione con distinzione tra maiuscole e minuscole

Sostituisci il testo usando le espressioni regolari (RegEx) in Java

Se non vuoi cambiare la parola esatta ma qualche schema che esiste nel tuo documento, puoi usare le Espressioni regolari. I seguenti passaggi ti consentono di trovare e sostituire qualsiasi modello di testo utilizzando espressioni regolari (RegEx) all’interno delle tue applicazioni Java.

  • Carica il documento usando la classe Redactor.
  • Crea la RegEx usando RegexRedaction.
  • Fornisci il testo utilizzando ReplacementOptions per sostituire la corrispondenza RegEx.
  • Usa il metodo apply sostituisci tutte le corrispondenze regex.
  • Utilizzare il metodo di salvataggio per ottenere il documento redatto.

Il codice seguente mostra come eseguire la ricerca di parole in un file Word utilizzando RegEx e sostituirla con altro testo utilizzando Java.

// Trova il testo usando l'espressione regolare e sostituiscilo con un altro testo usando Java
final Redactor redactor  = new Redactor("path/document.docx");
redactor.apply(new RegexRedaction("\\d{2}\\s*\\d{2}[^\\d]*\\d{6}", new ReplacementOptions("[censored]")));
redactor.save();

Quanto segue è l’output del codice precedente:

Redazione RegEx

Sostituisci il testo con la casella colorata in Java

Se non vuoi sostituire il tuo contenuto e vuoi solo nasconderlo, l’API ti consente di coprire la corrispondenza del testo disegnando una casella sopra di esso. Il seguente codice Java nasconde il testo con il rettangolo nero.

// Trova il testo e nascondilo disegnando un rettangolo su di esso usando Java
final Redactor redactor  = new Redactor("path/document.docx");
redactor.apply(new ExactPhraseRedaction("John Doe", true, new ReplacementOptions(java.awt.Color.BLACK)));
redactor.save();

L’output del codice precedente è il seguente.

Nascondi il testo usando Box

Ottieni una licenza API gratuita

Puoi ottenere una licenza temporanea gratuita per utilizzare l’API senza le limitazioni di valutazione.

Conclusione

Per riassumere, hai imparato come eseguire la ricerca di parole per trovare testo nei documenti di Word utilizzando la ricerca di frasi di testo esatte, la ricerca con distinzione tra maiuscole e minuscole, la ricerca utilizzando espressioni regolari e, ultimo ma non meno importante, nascondendo il testo invece di sostituirlo. È possibile utilizzare queste diverse tecniche per sostituire i risultati in modi diversi all’interno dei documenti MS Word.

Per maggiori dettagli e informazioni sull’API, visita la documentazione. Per domande, contattaci tramite il forum.

Guarda anche