Este artigo é útil para desenvolvedores Java que estão procurando uma maneira de encontrar e remover texto ou marcas d’água de imagem de PDF, Word, Excel, PowerPoint e **Visio ** documentos. Em uma de nossas postagens, aprendemos encontrar e remover marcas d’água de documentos em C#. Vamos agora pular para ver rapidamente um pouco sobre uma API Java que permite adicionar, localizar e remover marcas d’água de vários documentos de diferentes maneiras.

API Java para marca d’água e remoção

GroupDocs.Watermark for Java API é compatível com a adição de marcas d’água de texto e imagem a uma ampla variedade de formatos de documentos. Além disso, também tem a capacidade de localizar e remover marcas d’água dos documentos. A API também encontra os objetos de marca d’água que são adicionados usando as ferramentas de terceiros. Então deixe-me demonstrar como você pode remover a marca d’água de um documento em algumas etapas em Java.

Você pode obter o JAR da seção downloads ou adicionar a seguinte configuração em pom.xml de seu aplicativo Java baseado em Maven. Para obter detalhes da API, visite Referência da 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>

Etapas para remover marcas d’água de um documento em Java

Antes de começarmos, dê uma olhada no seguinte documento PDF que contém uma marca d’água de texto e uma marca d’água de imagem. Usaremos este documento e removeremos as marcas d’água dele.

Arquivo PDF com marcas d'água - GroupDocs

1. Crie um novo projeto.

2. Adicione as seguintes importações.

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. Crie uma instância da classe Watermarker e carregue o documento de origem.

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

4. Encontre as marcas d’água com base nos critérios de pesquisa configurados usando o método pesquisar.

// Configurar critério de pesquisa para marca d'água de imagem
ImageSearchCriteria imageSearchCriteria = new ImageDctHashSearchCriteria("filepath/watermark.png");
imageSearchCriteria.setMaxDifference(0.2); // Set how much the watermark can differ from the provided image.

// Configurar critério de pesquisa para marca d'água de texto
TextSearchCriteria textSearchCriteria = new TextSearchCriteria("CONFIDENTIAL");

// Combinando os critérios de pesquisa de texto e imagem
SearchCriteria combinedSearchCriteria = imageSearchCriteria.or(textSearchCriteria);
PossibleWatermarkCollection possibleWatermarks = watermarker.search(combinedSearchCriteria);

5. Faça a iteração na coleção de marcas d’água e remova as marcas d’água usando o método removeAt.

//Iterar pela possível coleção de marcas d'água, verificar e remover marcas d'água
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. Salve o documento resultante usando o método save.

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

Há também algumas outras maneiras de encontrar e remover marcas d’água de documentos usando métodos diferentes. Se você deseja remover todas as marcas d’água de um documento ou deseja se livrar de algumas marcas d’água seletivas de vários tipos:

  • Você pode coletar todas as marcas d’água possíveis.
  • Itere sobre a coleção de marcas d’água ou acesse diretamente a marca d’água com índice.
  • Verifique o tipo e os dados da marca d’água, se necessário.
  • Remova-o, se atender às suas necessidades.

remove, removeAt e clear são os métodos que podem ser usados adequadamente para remover marcas d’água. Para obter mais detalhes, visite o artigo de documentação sobre pesquisar e modificar marcas d’água em Java.

Código Completo

// Localizar e remover marcas d'água de documentos PDF, Word, Excel, PowerPoint e Visio em Java
Watermarker watermarker = new Watermarker("filepath/watermarked.pdf"); // Provide any supported document

// Configurar critério de pesquisa para marca d'água de imagem
ImageSearchCriteria imageSearchCriteria = new ImageDctHashSearchCriteria("filepath/watermark.png");
imageSearchCriteria.setMaxDifference(0.2); // Set how much the watermark can differ from the provided image.

// Configurar critério de pesquisa para marca d'água de texto
TextSearchCriteria textSearchCriteria = new TextSearchCriteria("CONFIDENTIAL");

// Combinando os critérios de pesquisa de texto e imagem
SearchCriteria combinedSearchCriteria = imageSearchCriteria.or(textSearchCriteria);
PossibleWatermarkCollection possibleWatermarks = watermarker.search(combinedSearchCriteria);

//Iterar pela possível coleção de marcas d'água, verificar e remover marcas d'água
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

A seguir está a captura de tela do documento PDF resultante que obtemos após a remoção das marcas d’água.

Arquivo PDF resultante após a remoção de marcas d'água usando a API Java de marca d'água do GroupDocs

Conclusão

Acredito que, como desenvolvedor Java, você não hesitará mais em encontrar e remover qualquer tipo de marca d’água de documentos de processamento de texto, planilhas, apresentações compatíveis com Microsoft e OpenOffice, Documentos PDF e desenhos do Visio.

Você pode explorar mais sobre a API na documentação. Em caso de dúvidas, entre em contato conosco @ fórum.

Veja também