Dans l’un des articles, nous avons déjà discuté de comment expurger des mots dans des documents en tant que développeur .NET. La stratégie est utilisée de plusieurs façons pour effacer le contenu sensible, masquer ou supprimer des informations privées telles que les adresses e-mail ou les numéros d’identification. Cet article explique comment effectuer une recherche de mots dans des documents Word DOC/DOCX en Java. Nous discuterons séparément de la manière de rechercher et de remplacer le texte, les mots ou les phrases par différentes techniques à l’aide de l’API Java pour la rédaction.

Les sujets suivants seront abordés ci-dessous :

API Java pour la recherche de mots et le remplacement de texte

GroupDocs fournit une API de rédaction Java qui permet de rechercher et de remplacer le contenu des fichiers pris en charge par MS Word et d’autres documents de divers autres formats de fichiers. En plus de la rédaction et de la rastérisation du texte, l’API prend en charge les métadonnées, les annotations, les feuilles de calcul, ainsi que les fonctionnalités de rédaction des images. Les formats de fichiers pris en charge des documents Word, des feuilles de calcul, des présentations, des images et des documents PDF sont disponibles dans la documentation.

Télécharger ou configurer

Vous pouvez télécharger le fichier JAR à partir de la section téléchargements, ou simplement obtenir les dernières configurations de référentiel et de dépendance pour le pom.xml de vos applications Java basées sur 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 ou tout autre logiciel tiers n’est pas requis pour le processus de rédaction. Commençons maintenant avec différentes approches pour gérer la recherche et le remplacement de texte. Voici la capture d’écran d’un document Word utilisé dans les exemples ci-dessous. Vous pouvez également utiliser les mêmes méthodes pour d’autres formats de document avec très peu ou pas de changement dans le code source.

Document pour biffer le texte

Rechercher et remplacer des mots ou des phrases à l’aide de Java

Les étapes suivantes expliquent comment rechercher puis remplacer les occurrences d’un mot/d’une phrase dans un document Word dans l’application Java.

  • Chargez le fichier DOC/DOCX à l’aide de la classe Redactor.
  • Trouvez la phrase ou le mot exact à l’aide des classes ExactPhraseRedaction et ReplacementOptions.
  • Utilisez la méthode d’application de Redactor pour appliquer la rédaction.
  • Pour enregistrer le fichier à un emplacement différent après avoir apporté des modifications, utilisez le flux de sortie.
  • Enregistrez les modifications de rédaction à l’aide de la méthode d’enregistrement.

Le code suivant recherche et remplace le mot “John Doe” dans le document Word ci-dessus à l’aide de Java. Il remplace toutes les occurrences de “John Doe” par le mot “[censored]”.

// Trouvez la phrase exacte et remplacez-la par un autre texte en utilisant Java
final Redactor redactor  = new Redactor("path/document.docx");
redactor.apply(new ExactPhraseRedaction("John Doe", new ReplacementOptions("[censored]")));
// Si vous souhaitez enregistrer le fichier expurgé à un emplacement différent avec un nom différent.
FileOutputStream stream = new FileOutputStream("path/exactPhrase.docx");
RasterizationOptions rasterOptions = new RasterizationOptions();
rasterOptions.setEnabled(false);
redactor.save(stream, rasterOptions);

La sortie du code est la suivante.

Caviarder en utilisant Exact Phrase

Recherche de mots sensibles à la casse et remplacement de texte en Java

Vous semblez prudent quant à la casse exacte du mot et souhaitez uniquement remplacer le mot qui correspond uniquement à votre recherche sensible à la casse. Le code suivant remplace l’existence de la correspondance de casse exacte du mot “John Doe” en Java.

// Trouvez la phrase exacte (sensible à la casse) et remplacez-la par un autre texte en utilisant Java
final Redactor redactor  = new Redactor("path/document.docx");
redactor.apply(new ExactPhraseRedaction("John Doe", true /*isCaseSensitive*/, new ReplacementOptions("[censored]")));
redactor.save();

La sortie du code est la suivante.

Caviardage sensible à la casse

Remplacer le texte à l’aide d’expressions régulières (RegEx) en Java

Si vous ne voulez pas changer le mot exact mais un modèle qui existe dans votre document, vous pouvez utiliser les expressions régulières. Les étapes suivantes vous permettent de rechercher et de remplacer n’importe quel modèle de texte à l’aide d’expressions régulières (RegEx) dans vos applications Java.

  • Chargez le document à l’aide de la classe Redactor.
  • Créez le RegEx à l’aide de RegexRedaction.
  • Fournissez le texte en utilisant ReplacementOptions pour remplacer la correspondance RegEx.
  • Utilisez la méthode apply pour remplacer toutes les correspondances de regex.
  • Utilisez la méthode de sauvegarde pour obtenir le document expurgé.

Le code suivant montre comment effectuer la recherche de mots dans un fichier Word à l’aide de RegEx et le remplacer par un autre texte à l’aide de Java.

// Rechercher du texte à l'aide d'une expression régulière et le remplacer par un autre texte à l'aide de 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();

Voici la sortie du code ci-dessus :

Caviardage RegEx

Remplacer le texte par une boîte colorée en Java

Si vous ne souhaitez pas remplacer votre contenu et souhaitez simplement le masquer, l’API vous permet de couvrir la correspondance du texte en traçant un cadre dessus. Le code Java suivant masque le texte avec le rectangle noir.

// Trouvez du texte et masquez-le en dessinant un rectangle dessus à l'aide de Java
final Redactor redactor  = new Redactor("path/document.docx");
redactor.apply(new ExactPhraseRedaction("John Doe", true, new ReplacementOptions(java.awt.Color.BLACK)));
redactor.save();

La sortie du code ci-dessus est la suivante.

Masquer le texte à l'aide de Box

Obtenez une licence API gratuite

Vous pouvez obtenir une licence temporaire gratuite afin d’utiliser l’API sans les limitations d’évaluation.

Conclusion

En résumé, vous avez appris à effectuer une recherche de mots pour trouver du texte dans des documents Word à l’aide d’une recherche par expression de texte exacte, d’une recherche sensible à la casse, d’une recherche à l’aide d’expressions régulières et, enfin et surtout, du masquage du texte au lieu de le remplacer. Vous pouvez utiliser ces différentes techniques pour remplacer les résultats de différentes manières dans les documents MS Word.

Pour plus de détails et en savoir plus sur l’API, consultez la documentation. Pour toute question, contactez-nous via le forum.

Voir également