Las plantillas se utilizan ampliamente para generar documentos personalizados reemplazando las claves de plantilla con los valores respectivos. Este artículo ofrece una guía sobre cómo buscar y reemplazar texto y palabras en documentos PDF en Java. Discutiremos por separado cómo realizar la búsqueda de palabras y frases, la búsqueda de palabras con distinción entre mayúsculas y minúsculas, reemplazando el texto encontrado usando expresiones regulares. Finalmente, aprenderemos cómo ocultar la parte buscada del texto usando Java.

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

API de redacción de Java para reemplazar texto

GroupDocs proporciona la API de Java para aplicar varios tipos de redacciones. Permite redactar, ocultar o eliminar el contenido e incluso los metadatos de documentos, presentaciones, hojas de cálculo, archivos PDF e imágenes dentro de la aplicación. Para obtener más detalles sobre la API, visite su documentación.

Descargar o configurar

Puede descargar el archivo JAR de la sección de descargas, o simplemente obtener las últimas configuraciones de dependencia y repositorio para pom.xml de su maven- aplicaciones Java basadas.

<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 de las cosas buenas es que no es necesario instalar ningún editor de PDF ni ningún otro software de terceros para la redacción de PDF. El siguiente es el contenido del documento PDF que se utiliza en los siguientes ejemplos para la redacción. El mismo enfoque funcionará para otros formatos de documentos sin apenas diferencia en el código fuente.

Buscar y reemplazar palabras o frases en PDF en Java

Puede utilizar esta función para ocultar datos privados y también para crear un nuevo documento personalizado a partir de cualquier plantilla. El siguiente paso explica cómo encontrar cualquier palabra/frase en un documento PDF y reemplazarlo con algún otro texto dentro de la aplicación Java.

  • Cargue el archivo PDF usando la clase Redactor.
  • Encuentre la frase o palabra exacta, usando ExactPhraseRedaction y ReplacementOptions.
  • Aplicar la redacción usando el método apply().
  • Guarde el nuevo documento con cambios utilizando el método save().

El siguiente código busca y reemplaza las palabras en un archivo PDF usando Java. Más precisamente, oculta todas las apariciones de “John Doe” reemplazándolo con la palabra “[censurado]”.

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

La salida del código anterior es la siguiente.

Buscar y reemplazar texto o frase que distingue entre mayúsculas y minúsculas en PDF usando Java

Puede realizar la búsqueda y redacción con distinción entre mayúsculas y minúsculas. El siguiente código reemplaza la aparición de la palabra “John Doe”, que distingue entre mayúsculas y minúsculas, pero no “john doe” dentro de un documento PDF usando Java.

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

La salida del código es la siguiente.

Reemplazar texto en PDF con expresiones regulares (RegEx) en Java

De manera similar, puede reemplazar cualquier patrón de texto específico usando expresiones regulares. Los siguientes pasos le permiten redactar PDF después de buscar usando expresiones regulares (RegEx) dentro de sus aplicaciones Java.

  • Cargue el documento PDF usando la clase Redactor.
  • Encuentre la coincidencia de expresiones regulares usando la clase RegexRedaction con ReplacementOptions.
  • Aplicar en los cambios al documento usando el método apply().
  • Guarde el documento redactado utilizando el método save() adecuado.

El siguiente código Java muestra cómo encontrar un determinado patrón de texto en un documento PDF usando RegEx y luego reemplazarlo/ocultarlo con algún otro texto.

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

La salida del código anterior es la siguiente.

Reemplace el texto con un cuadro de color en Java

Si solo desea ocultar la información confidencial buscada dentro de su archivo PDF, simplemente puede ponerle una cubierta. La API le permite ocultar el texto buscado. El siguiente código coloca el rectángulo negro sobre el texto privado mencionado en Java.

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

La salida del código anterior es la siguiente.

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, aprendimos cómo encontrar cierto texto en archivos PDF utilizando diferentes técnicas de búsqueda. Más tarde redactamos los archivos PDF reemplazando u ocultando el texto dentro de las aplicaciones en Java. Más precisamente, realizamos una búsqueda simple de palabras, frases, buscamos con distinción de mayúsculas y minúsculas y usamos RegEx en Java. Por último, cambiamos los resultados de la búsqueda con algún otro texto o simplemente ocultándolo con color sobre él.

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

Ver también