Questo articolo è utile per gli sviluppatori Java che cercano un modo per trovare e rimuovere testo o filigrane di immagini da PDF, Word, Excel, PowerPoint e **Visio ** documenti. In uno dei nostri post abbiamo imparato trovare e rimuovere filigrane dai documenti in C#. Passiamo ora a vedere rapidamente un po’ di un’API Java che consente di aggiungere, trovare e rimuovere filigrane da vari documenti in modi diversi.

API Java per filigrana e rimozione

GroupDocs.Watermark per Java L’API supporta l’aggiunta di filigrane di testo e immagini a un’ampia gamma di formati di documenti. Inoltre, ha anche la capacità di trovare e rimuovere filigrane dai documenti. L’API trova anche gli oggetti filigrana che vengono aggiunti utilizzando gli strumenti di terze parti. Quindi lascia che ti mostri come rimuovere la filigrana da un documento in pochi passaggi in Java.

Puoi ottenere il JAR dalla sezione download o aggiungere la seguente configurazione in pom.xml della tua applicazione Java basata su Maven. Per i dettagli sull’API, visita Riferimento 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>

Passaggi per rimuovere filigrane da un documento in Java

Prima di iniziare, dai un’occhiata al seguente documento PDF che contiene una filigrana di testo e una filigrana di immagine. Useremo questo documento e rimuoveremo le filigrane da esso.

File PDF con filigrane - GroupDocs

1. Crea un nuovo progetto.

2. Aggiungi le seguenti importazioni.

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 un’istanza della classe Watermarker e carica il documento di origine.

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

4. Trova le filigrane in base ai criteri di ricerca configurati utilizzando il metodo ricerca.

// Configura il criterio di ricerca per la filigrana dell'immagine
ImageSearchCriteria imageSearchCriteria = new ImageDctHashSearchCriteria("filepath/watermark.png");
imageSearchCriteria.setMaxDifference(0.2); // Set how much the watermark can differ from the provided image.

// Configura il criterio di ricerca per la filigrana di testo
TextSearchCriteria textSearchCriteria = new TextSearchCriteria("CONFIDENTIAL");

// Combinando i criteri di ricerca di testo e immagini
SearchCriteria combinedSearchCriteria = imageSearchCriteria.or(textSearchCriteria);
PossibleWatermarkCollection possibleWatermarks = watermarker.search(combinedSearchCriteria);

5. Scorri la raccolta di filigrane e rimuovi le filigrane utilizzando il metodo removeAt.

//Scorri la possibile raccolta di filigrane, controlla e rimuovi le filigrane
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. Salva il documento risultante usando il metodo salva.

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

Esistono anche altri modi per trovare e rimuovere filigrane dai documenti utilizzando metodi diversi. Se vuoi rimuovere tutte le filigrane di un documento, o vuoi eliminare alcune filigrane selettive di vario tipo:

  • Puoi raccogliere tutte le possibili filigrane.
  • Scorri la raccolta di filigrane o accedi direttamente alla filigrana con l’indice.
  • Verificare il tipo e i dati della filigrana, se necessario.
  • Rimuovilo, se soddisfa le tue esigenze.

remove, removeAt e clear sono i metodi che possono essere utilizzati di conseguenza per rimuovere le filigrane. Per maggiori dettagli, puoi visitare l’articolo della documentazione su ricerca e modifica di filigrane in Java.

Codice completo

// Trova e rimuovi filigrane da documenti PDF, Word, Excel, PowerPoint e Visio in Java
Watermarker watermarker = new Watermarker("filepath/watermarked.pdf"); // Provide any supported document

// Configura il criterio di ricerca per la filigrana dell'immagine
ImageSearchCriteria imageSearchCriteria = new ImageDctHashSearchCriteria("filepath/watermark.png");
imageSearchCriteria.setMaxDifference(0.2); // Set how much the watermark can differ from the provided image.

// Configura il criterio di ricerca per la filigrana di testo
TextSearchCriteria textSearchCriteria = new TextSearchCriteria("CONFIDENTIAL");

// Combinando i criteri di ricerca di testo e immagini
SearchCriteria combinedSearchCriteria = imageSearchCriteria.or(textSearchCriteria);
PossibleWatermarkCollection possibleWatermarks = watermarker.search(combinedSearchCriteria);

//Scorri la possibile raccolta di filigrane, controlla e rimuovi le filigrane
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(); 

Risultati

Quello che segue è lo screenshot del documento PDF risultante che otteniamo dopo aver rimosso le filigrane.

File PDF risultante dopo la rimozione delle filigrane utilizzando l'API Java Watermarking di GroupDocs

Conclusione

Credo che, come sviluppatore Java, non esiterai più a trovare e quindi rimuovere qualsiasi tipo di filigrana da documenti di elaborazione testi, fogli di calcolo, presentazioni, supportati da Microsoft e OpenOffice. Documenti PDF e disegni Visio.

Puoi esplorare di più sull’API dalla documentazione. In caso di domande, contattaci @ forum.

Guarda anche