In uno degli articoli abbiamo già discusso come redigere 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 diverse tecniche 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 una 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 del testo e alla rasterizzazione, l’API supporta metadati, annotazioni, fogli di calcolo e anche le funzioni di redazione delle immagini. I formati di file supportati di 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 pox.xml del tuo maven- basato su applicazioni Java.

<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 è richiesto per il processo di redazione. Iniziamo ora con approcci diversi per gestire la ricerca e sostituire il testo. Quello che segue è lo screenshot di un documento di Word utilizzato negli esempi seguenti. È possibile utilizzare gli stessi metodi anche per altri formati di documenti con modifiche minime o nulle nel codice sorgente.

Documento per redigere il testo

Trova e sostituisci parole o frasi usando Java

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

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 “[censurato]”.

// 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 vuoi 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 usando la frase esatta

Cerca parole con distinzione tra maiuscole e minuscole e sostituisci testo in Java

Sembri cauto riguardo all’esatta lettera maiuscola della parola e desideri solo sostituire la parola che corrisponde solo alla tua ricerca con distinzione tra maiuscole e minuscole. Il codice seguente sostituisce l’esistenza dell’esatta corrispondenza 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 case sensitive

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

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

  • Carica il documento utilizzando la classe Redactor.
  • Crea la RegEx utilizzando RegexRedaction.
  • Fornisci il testo utilizzando ReplacementOptions per sostituire la corrispondenza RegEx.
  • Usa il metodo applica sostituisci tutte le corrispondenze regolari.
  • Usa 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 sostituirlo con un 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();

Quello che 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 con il testo disegnando un riquadro su di esso. Il seguente codice Java nasconde il testo con la casella rettangolare nera.

// Trova il testo e nascondilo disegnandoci sopra un rettangolo 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 testo usando Box

Ottieni una licenza API gratuita

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

Conclusione

Per riassumere, hai imparato come eseguire la ricerca di parole per trovare il testo nei documenti di Word utilizzando la ricerca esatta per frase di testo, la ricerca con distinzione tra maiuscole e minuscole, la ricerca utilizzando espressioni regolari e, ultimo ma non meno importante, nascondere 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