En uno de los artículos, ya hemos discutido cómo redactar palabras en documentos como desarrollador de .NET. La estrategia se utiliza de muchas maneras para borrar contenido confidencial, ocultar o eliminar información privada como direcciones de correo electrónico o números de identificación. Este artículo explica cómo realizar una búsqueda de palabras en documentos DOC/DOCX de Word en Java. Discutiremos por separado cómo encontrar y reemplazar el texto, las palabras o las frases con diferentes técnicas utilizando la API de Java para la redacción.

A continuación se tratarán los siguientes temas:

API de Java para búsqueda de palabras y reemplazo de texto

GroupDocs proporciona una API de redacción de Java que permite encontrar y reemplazar el contenido de los archivos compatibles con MS Word y otros documentos de varios otros formatos de archivo. Además de la redacción y rasterización de texto, la API admite metadatos, anotaciones, hojas de cálculo y también funciones de redacción de imágenes. Los formatos de archivo admitidos de los documentos de Word, hojas de cálculo, presentaciones, imágenes y documentos PDF están disponibles en la documentación.

Descargar o Configurar

Puede descargar el archivo JAR de la sección de descargas, o simplemente obtener las configuraciones de dependencia y repositorio más recientes para el pom.xml de sus aplicaciones Java basadas en 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>

No se requiere MS Word ni ningún otro software de terceros para el proceso de redacción. Empecemos ahora con diferentes enfoques para tratar con la búsqueda y el reemplazo de texto. La siguiente es la captura de pantalla de un documento de Word que se utiliza en los siguientes ejemplos. También puede usar los mismos métodos para otros formatos de documentos con muy poco o ningún cambio en el código fuente.

Documento para redactar texto

Buscar y reemplazar palabras o frases usando Java

Los siguientes pasos explican cómo encontrar y luego reemplazar las apariciones de una palabra/frase en un documento de Word dentro de la aplicación Java.

  • Cargue el archivo DOC/DOCX usando la clase Redactor.
  • Encuentre la frase o palabra exacta, usando las clases ExactPhraseRedaction y ReplacementOptions.
  • Use el método de aplicación de Redactor para aplicar la redacción.
  • Para guardar el archivo en una ubicación diferente después de realizar cambios, use el flujo de salida.
  • Guarde los cambios de redacción utilizando el método de guardar.

El siguiente código busca y reemplaza la palabra “John Doe” en el documento de Word anterior usando Java. Reemplaza todas las apariciones de “John Doe” con la palabra “[censurado]”.

// Encuentre la frase exacta y reemplácela con algún otro texto usando Java
final Redactor redactor  = new Redactor("path/document.docx");
redactor.apply(new ExactPhraseRedaction("John Doe", new ReplacementOptions("[censored]")));
// Si desea guardar el archivo redactado en una ubicación diferente con un nombre diferente.
FileOutputStream stream = new FileOutputStream("path/exactPhrase.docx");
RasterizationOptions rasterOptions = new RasterizationOptions();
rasterOptions.setEnabled(false);
redactor.save(stream, rasterOptions);

La salida del código es la siguiente.

Redactar utilizando la frase exacta

Búsqueda de palabras con distinción entre mayúsculas y minúsculas y reemplazo de texto en Java

Parece cauteloso acerca de las mayúsculas y minúsculas exactas de la palabra y solo desea reemplazar la palabra que solo coincide con su búsqueda que distingue entre mayúsculas y minúsculas. El siguiente código reemplaza la existencia de la coincidencia exacta de mayúsculas y minúsculas de la palabra “John Doe” en Java.

// Encuentre la frase exacta (sensible a mayúsculas y minúsculas) y reemplácela con algún otro texto usando Java
final Redactor redactor  = new Redactor("path/document.docx");
redactor.apply(new ExactPhraseRedaction("John Doe", true /*isCaseSensitive*/, new ReplacementOptions("[censored]")));
redactor.save();

La salida del código es la siguiente.

Redacción sensible a mayúsculas y minúsculas

Reemplazar texto usando expresiones regulares (RegEx) en Java

Si no desea cambiar la palabra exacta sino algún patrón que existe en su documento, puede usar las expresiones regulares. Los siguientes pasos le permiten buscar y reemplazar cualquier patrón de texto usando expresiones regulares (RegEx) dentro de sus aplicaciones Java.

  • Cargue el documento usando la clase Redactor.
  • Cree RegEx usando RegexRedaction.
  • Proporcione el texto usando ReplacementOptions para reemplazar la coincidencia RegEx.
  • Use el método de aplicación para reemplazar todas las coincidencias de expresiones regulares.
  • Utilice el método de guardar para obtener el documento redactado.

El siguiente código muestra cómo realizar la búsqueda de palabras en un archivo de Word usando RegEx y reemplazarlo con algún otro texto usando Java.

// Encuentre texto usando expresiones regulares y reemplácelo con algún otro texto 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();

La siguiente es la salida del código anterior:

Redacción RegEx

Reemplace el texto con un cuadro de color en Java

Si no desea reemplazar su contenido y solo desea ocultarlo, la API le permite cubrir la coincidencia de texto dibujando un cuadro sobre él. El siguiente código Java oculta el texto con el cuadro rectangular negro.

// Encuentre texto y ocúltelo dibujando un rectángulo sobre él 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();

La salida del código anterior es la siguiente.

Ocultar texto usando el cuadro

Obtenga una licencia de API gratuita

Puede obtener una licencia temporal gratuita para utilizar la API sin las limitaciones de evaluación.

Conclusión

En resumen, aprendió a realizar una búsqueda de palabras para encontrar texto en documentos de Word mediante la búsqueda de frases de texto exactas, la búsqueda entre mayúsculas y minúsculas, la búsqueda mediante expresiones regulares y, por último, pero no menos importante, ocultar el texto en lugar de reemplazarlo. Puede usar estas diferentes técnicas para reemplazar los hallazgos de diferentes maneras dentro de los documentos de MS Word.

Para obtener más detalles y aprender sobre la API, visite la documentación. Para consultas, contáctenos a través del foro.

Ver también