Este artículo es útil para los desarrolladores de Java que buscan una forma de encontrar y eliminar texto o marcas de agua de imágenes de PDF, Word, Excel, PowerPoint y **Visio ** documentos. En una de nuestras publicaciones hemos aprendido a encontrar y eliminar marcas de agua de documentos en C#. Pasemos ahora a ver rápidamente un poco sobre una API de Java que permite agregar, encontrar y eliminar marcas de agua de varios documentos de diferentes maneras.

API de Java para marcas de agua y eliminación

GroupDocs.Watermark for Java La API admite la adición de marcas de agua de texto e imagen a una amplia variedad de formatos de documentos. Además, también tiene la capacidad de encontrar y eliminar marcas de agua de los documentos. La API también encuentra los objetos de marca de agua que se agregan mediante herramientas de terceros. Permítame demostrarle cómo puede eliminar la marca de agua de un documento en unos pocos pasos en Java.

Puede obtener el JAR de la sección descargas o agregar la siguiente configuración en pom.xml de su aplicación Java basada en Maven. Para obtener detalles de la API, visite Referencia de la API.

<repository>
	<id>GroupDocsJavaAPI</id>
	<name>GroupDocs Java API</name>
	<url>http://repository.groupdocs.com/repo/</url>
</repository>
<dependency>
        <groupId>com.groupdocs</groupId>
        <artifactId>groupdocs-watermark</artifactId>
        <version>20.5</version> 
</dependency>

Pasos para eliminar marcas de agua de un documento en Java

Antes de comenzar, eche un vistazo al siguiente documento PDF que contiene una marca de agua de texto y una marca de agua de imagen. Usaremos este documento y le quitaremos las marcas de agua.

Archivo PDF con marcas de agua - GroupDocs

1. Crea un nuevo proyecto.

2. Agregue las siguientes importaciones.

import com.groupdocs.watermark.Watermarker;
import com.groupdocs.watermark.search.ImageDctHashSearchCriteria;
import com.groupdocs.watermark.search.ImageSearchCriteria;
import com.groupdocs.watermark.search.PossibleWatermarkCollection;
import com.groupdocs.watermark.search.SearchCriteria;
import com.groupdocs.watermark.search.TextSearchCriteria;

3. Crea una instancia de la clase Marcador de agua y carga el documento fuente.

Watermarker watermarker = new Watermarker("filepath/watermarked.pdf");

4. Encuentre las marcas de agua según los criterios de búsqueda configurados utilizando el método de búsqueda.

// Configurar criterio de búsqueda para marca de agua de imagen
ImageSearchCriteria imageSearchCriteria = new ImageDctHashSearchCriteria("filepath/watermark.png");
imageSearchCriteria.setMaxDifference(0.2); // Set how much the watermark can differ from the provided image.

// Configurar criterio de búsqueda para marca de agua de texto
TextSearchCriteria textSearchCriteria = new TextSearchCriteria("CONFIDENTIAL");

// Combinar los criterios de búsqueda de texto e imagen
SearchCriteria combinedSearchCriteria = imageSearchCriteria.or(textSearchCriteria);
PossibleWatermarkCollection possibleWatermarks = watermarker.search(combinedSearchCriteria);

5. Repita la colección de marcas de agua y elimínelas con el método removeAt.

//Iterar a través de la posible colección de marcas de agua, verificar y eliminar marcas de agua
while(possibleWatermarks.getCount()>0)
{
	if (possibleWatermarks.get_Item(0).getImageData() != null)
	{
		possibleWatermarks.removeAt(0);
		System.out.println("Removed Image Watermark.");
	}
	else
	{
		possibleWatermarks.removeAt(0);
		System.out.println("Removed Text Watermark.");
	}
} 

6. Guarde el documento resultante usando el método guardar.

 watermarker.save("filepath/without_watermark.pdf");
 watermarker.close(); 

También existen otras formas de encontrar y eliminar marcas de agua de documentos utilizando diferentes métodos. Si desea eliminar todas las marcas de agua de un documento o desea deshacerse de algunas marcas de agua selectivas de varios tipos:

  • Puedes recopilar todas las marcas de agua posibles.
  • Iterar sobre la colección de marcas de agua o acceder directamente a la marca de agua con índice.
  • Verifique el tipo de marca de agua y los datos, si es necesario.
  • Quitarlo, si cumple con su requisito.

remove, removeAt y clear son los métodos que se pueden usar para eliminar las marcas de agua. Para más detalles, puede visitar el artículo de documentación sobre buscar y modificar marcas de agua en Java.

Código completo

// Encuentre y elimine marcas de agua de documentos PDF, Word, Excel, PowerPoint y Visio en Java
Watermarker watermarker = new Watermarker("filepath/watermarked.pdf"); // Provide any supported document

// Configurar criterio de búsqueda para marca de agua de imagen
ImageSearchCriteria imageSearchCriteria = new ImageDctHashSearchCriteria("filepath/watermark.png");
imageSearchCriteria.setMaxDifference(0.2); // Set how much the watermark can differ from the provided image.

// Configurar criterio de búsqueda para marca de agua de texto
TextSearchCriteria textSearchCriteria = new TextSearchCriteria("CONFIDENTIAL");

// Combinar los criterios de búsqueda de texto e imagen
SearchCriteria combinedSearchCriteria = imageSearchCriteria.or(textSearchCriteria);
PossibleWatermarkCollection possibleWatermarks = watermarker.search(combinedSearchCriteria);

//Iterar a través de la posible colección de marcas de agua, verificar y eliminar marcas de agua
while(possibleWatermarks.getCount()>0)
{
	if (possibleWatermarks.get_Item(0).getImageData() != null)
	{
		possibleWatermarks.removeAt(0);
		System.out.println("Removed Image Watermark.");
	}
	else
	{
		possibleWatermarks.removeAt(0);
		System.out.println("Removed Text Watermark.");
	}
} 
watermarker.save("filepath/without_watermark.pdf");
watermarker.close(); 

Resultados

La siguiente es la captura de pantalla del documento PDF resultante que obtenemos después de eliminar las marcas de agua.

Archivo PDF resultante después de la eliminación de marcas de agua usando Watermarking Java API de GroupDocs

Conclusión

Creo que, como desarrollador de Java, no dudará más en encontrar y luego eliminar cualquier tipo de marca de agua de los documentos de procesamiento de texto, hojas de cálculo, presentaciones compatibles con Microsoft y OpenOffice. Documentos en PDF y dibujos de Visio.

Puede explorar más sobre la API en la documentación. En caso de cualquier consulta, comuníquese con nosotros @ foro.

Ver también