I modelli sono ampiamente utilizzati per generare documenti personalizzati sostituendo le chiavi del modello con i rispettivi valori. Questo articolo guida su come trovare e sostituire testo e parole nei documenti PDF in Java. Discuteremo separatamente come eseguire la ricerca di parole e frasi, la ricerca di parole con distinzione tra maiuscole e minuscole, la sostituzione del testo trovato utilizzando espressioni regolari. Infine, impareremo come nascondere la parte di testo cercata utilizzando Java.

Di seguito verranno trattati i seguenti argomenti:

API di redazione Java per la sostituzione del testo

GroupDocs fornisce l’API Java per l’applicazione di vari tipi di redazioni. Consente di oscurare, nascondere o rimuovere il contenuto e persino i metadati di documenti, presentazioni, fogli di calcolo, file PDF e immagini all’interno dell’applicazione. Per ulteriori dettagli sull’API, visitare la sua documentazione.

Scarica o configura

Puoi scaricare il file JAR dalla sezione download, o semplicemente ottenere l’ultimo repository e le configurazioni delle dipendenze per pom.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>

Una delle cose buone è che non è necessario installare alcun editor PDF o qualsiasi altro software di terze parti per la redazione dei PDF. Di seguito è riportato il contenuto del documento PDF utilizzato negli esempi seguenti per la redazione. Lo stesso approccio funzionerà per altri formati di documenti con pochissime differenze nel codice sorgente.

Trova e sostituisci Word o Frase in PDF in Java

Puoi utilizzare questa funzione per nascondere qualsiasi dato privato e anche per creare un nuovo documento personalizzato da qualsiasi modello. Il passaggio seguente spiega come trovare qualsiasi parola/frase in un documento PDF e sostituirla con un altro testo all’interno dell’applicazione Java.

  • Carica il file PDF utilizzando la classe Redactor.
  • Trova la frase o la parola esatta, utilizzando ExactPhraseRedaction e ReplacementOptions.
  • Applica la redazione utilizzando il metodo apply().
  • Salva il nuovo documento con le modifiche utilizzando il metodo save().

Il codice seguente trova e sostituisce le parole in un file PDF utilizzando Java. Più precisamente, nasconde tutte le occorrenze di “John Doe” sostituendolo con la parola “[censurato]”.

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

L’output del codice precedente è il seguente.

Trova e sostituisci testo o frase con distinzione tra maiuscole e minuscole in PDF utilizzando Java

È possibile eseguire la ricerca e la redazione con distinzione tra maiuscole e minuscole. Il codice seguente sostituisce l’occorrenza con distinzione tra maiuscole e minuscole della parola “John Doe” ma non “john doe” all’interno di un documento PDF che utilizza Java.

// Trova la frase esatta in PDF (con distinzione tra maiuscole e minuscole) e sostituiscila con un altro testo utilizzando Java
final Redactor redactor  = new Redactor("path/document.pdf");
redactor.apply(new ExactPhraseRedaction("John Doe", true /*isCaseSensitive*/, new ReplacementOptions("[censored]")));
redactor.save();

L’output del codice è il seguente.

Sostituisci il testo in PDF con le espressioni regolari (RegEx) in Java

Allo stesso modo, puoi sostituire qualsiasi modello di testo specifico usando le espressioni regolari. I seguenti passaggi consentono di redigere PDF dopo la ricerca utilizzando l’espressione regolare (RegEx) all’interno delle applicazioni Java.

  • Carica il documento PDF utilizzando la classe Redactor.
  • Trova la corrispondenza regolare utilizzando la classe RegexRedaction con [ReplacementOptions](https://apiference .groupdocs.com/redaction/java/com.groupdocs.redaction.redactions/ReplacementOptions).
  • Applicare nelle modifiche al documento utilizzando il metodo apply().
  • Salva il documento redatto utilizzando il metodo save() appropriato.

Il seguente codice Java mostra come trovare un determinato modello di testo in un documento PDF utilizzando RegEx e successivamente sostituirlo/nasconderlo con un altro testo.

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

L’output del codice precedente è il seguente.

Sostituisci il testo con la casella colorata in Java

Se vuoi solo nascondere le informazioni riservate cercate all’interno del tuo file PDF, puoi semplicemente metterci una copertina. L’API consente di nascondere il testo cercato. Il codice seguente posiziona il rettangolo nero sul testo privato menzionato in Java.

// Trova il testo in PDF e nascondilo disegnandoci sopra un rettangolo usando Java
final Redactor redactor  = new Redactor("path/document.pdf");
redactor.apply(new ExactPhraseRedaction("John Doe", true, new ReplacementOptions(java.awt.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 riassumere, abbiamo imparato a trovare un determinato testo nei file PDF utilizzando diverse tecniche di ricerca. Successivamente abbiamo redatto i file PDF sostituendo o nascondendo il testo all’interno delle applicazioni in Java. Più precisamente, abbiamo eseguito una semplice ricerca di parole, frasi, ricercate con distinzione tra maiuscole e minuscole e utilizzando RegEx in Java. Infine, abbiamo modificato i risultati della ricerca con un altro testo o semplicemente nascondendolo con il colore su di esso.

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

Guarda anche