Eliminar marcas de agua de documentos PDF usando Java

La imagen o el texto de la marca de agua se utiliza para identificar el autor del documento o la información de derechos de autor. Puede detectar todas las marcas de agua disponibles en un documento y luego eliminarlas. Como desarrollador de Java, puede eliminar fácilmente las marcas de agua de los documentos mediante programación. En este artículo, aprenderá cómo eliminar marcas de agua de documentos PDF usando Java.

Los siguientes temas se discuten/tratan en este artículo:

API de Java para la eliminación de marcas de agua

Usaré la API GroupDocs.Watermark for Java para eliminar las marcas de agua de los documentos PDF. Permite realizar operaciones de marca de agua de imágenes y texto. También le permite aplicar nuevas marcas de agua, buscar y eliminar marcas de agua existentes en archivos de formatos admitidos como Word, Excel, Powerpoint y PDF.

Puede descargar el JAR de la API o simplemente agregar la siguiente configuración pom.xml en sus aplicaciones Java basadas en Maven para probar los ejemplos de código que se mencionan a continuación.

<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>

Eliminar todas las marcas de agua de PDF usando Java

Puede eliminar fácilmente todas las marcas de agua de sus documentos PDF siguiendo los sencillos pasos que se mencionan a continuación:

El siguiente ejemplo de código muestra cómo eliminar todas las marcas de agua disponibles en un documento PDF mediante Java.

// Crear una instancia
Watermarker watermarker = new Watermarker("C:\\Files\\sample.pdf");

// Buscar todas las marcas de agua posibles
PossibleWatermarkCollection possibleWatermarks = watermarker.search();

// Eliminar todas las marcas de agua encontradas
possibleWatermarks.clear();

// Guardar archivo actualizado
watermarker.save("C:\\Files\\output.pdf");

watermarker.close();
Eliminar todas las marcas de agua de PDF usando Java

Eliminar todas las marcas de agua de PDF usando Java

La clase Watermarker facilita la adición, eliminación y búsqueda de marcas de agua en un documento.

La clase PossibleWatermarkCollection representa una colección de posibles marcas de agua encontradas en un contenido.

El método search() de la clase Watermarker busca todas las marcas de agua posibles en el documento. Devuelve el conjunto de resultados como PossibleWatermarkCollection.

Eliminación de marcas de agua de solo texto de PDF usando Java

Puede eliminar fácilmente todas las marcas de agua de solo texto de sus documentos PDF siguiendo los sencillos pasos que se mencionan a continuación:

  • Crea una instancia de la clase Marcador de agua
  • Especifique la ruta al archivo PDF de entrada
  • Complete PossibleWatermarkCollection llamando al método search()
  • Compruebe si getText() no es nulo o está vacío para todas las posibles marcas de agua
  • Luego pase el índice al método removeAt() para eliminarlo
  • Guardar el archivo actualizado

El siguiente ejemplo de código muestra cómo eliminar solo las marcas de agua de texto disponibles en un documento PDF usando Java.

// Crear una instancia
Watermarker watermarker = new Watermarker("C:\\Files\\sample.pdf");

// Buscar todas las marcas de agua posibles
PossibleWatermarkCollection possibleWatermarks = watermarker.search();

// Eliminar todas las marcas de agua encontradas
for (int i = possibleWatermarks.getCount() - 1; i >= 0; i--)
{
  if(possibleWatermarks.get_Item(i).getText() != null && possibleWatermarks.get_Item(i).getText() != "")
  {
    possibleWatermarks.removeAt(i);
  }
}

// Guardar documento actualizado
watermarker.save("C:\\Files\\output.pdf");

watermarker.close();
Eliminación de marcas de agua de solo texto de PDF usando Java

Eliminación de marcas de agua de solo texto de PDF usando Java

El método removeAt() elimina el elemento en el índice especificado de la PossibleWatermarksCollection.

Eliminar marcas de agua con formato de texto particular

Puede eliminar las marcas de agua de texto disponibles con un formato particular de sus documentos PDF siguiendo los sencillos pasos que se mencionan a continuación:

El siguiente ejemplo de código muestra cómo eliminar las marcas de agua de texto con un formato de texto particular de un documento PDF usando Java.

// Crear una instancia
Watermarker watermarker = new Watermarker("C:\\Files\\sample.pdf");

// Definir criterios de búsqueda de formato de texto
TextFormattingSearchCriteria criteria = new TextFormattingSearchCriteria();
criteria.setFontName("Arial");
criteria.setMinFontSize(19);
criteria.setMaxFontSize(42);
criteria.setFontBold(false);

// Buscar posibles marcas de agua
PossibleWatermarkCollection watermarks = watermarker.search(criteria);
watermarks.clear();

// Guardar documento actualizado
watermarker.save("C:\\Files\\output.pdf");

watermarker.close();
Eliminar marcas de agua con formato de texto particular

Eliminar marcas de agua con formato de texto particular

Eliminación de marcas de agua de solo imagen de PDF usando Java

Puede eliminar fácilmente todas las marcas de agua de solo imagen de sus documentos PDF siguiendo los sencillos pasos que se mencionan a continuación:

  • Crea una instancia de la clase Marcador de agua
  • Especifique la ruta al archivo PDF de entrada
  • Complete PossibleWatermarkCollection llamando al método search()
  • Compruebe si getImageData() no es nulo para todas las posibles marcas de agua
  • Luego pase el índice al método removeAt() para eliminarlo
  • Guardar el archivo actualizado

El siguiente ejemplo de código muestra cómo eliminar solo las marcas de agua de imagen disponibles en un documento PDF usando Java.

// Crear una instancia
Watermarker watermarker = new Watermarker("C:\\Files\\sample.pdf");

// Buscar todas las marcas de agua posibles
PossibleWatermarkCollection possibleWatermarks = watermarker.search();

// Eliminar todas las marcas de agua de la imagen
for (int i = possibleWatermarks.getCount() - 1; i >= 0; i--)
{
  if(possibleWatermarks.get_Item(i).getImageData() != null)
  {
    possibleWatermarks.removeAt(i);
  }
}

// Guardar documento actualizado
watermarker.save("C:\\Files\\output.pdf");

watermarker.close();
Eliminación de marcas de agua de solo imagen de PDF usando Java

Eliminación de marcas de agua de solo imagen de PDF usando Java

Obtenga una licencia gratis

Puede probar la API sin limitaciones de evaluación solicitando una licencia temporal gratuita.

Conclusión

En este artículo, aprendió cómo eliminar marcas de agua de texto o imagen de un documento PDF usando Java. Además, ha aprendido a eliminar marcas de agua de solo texto o solo de imagen de los documentos. Puede obtener más información sobre GroupDocs.Watermark para la API de Java utilizando la documentación. En caso de cualquier ambigüedad, no dude en contactarnos en el foro.

Ver también