Dit artikel is handig voor Java-ontwikkelaars die op zoek zijn naar een manier om tekst- of afbeeldingswatermerken te vinden en te verwijderen uit PDF-, Word-, Excel-, PowerPoint- en Visio-documenten. In een van onze berichten hebben we geleerd watermerken vinden en verwijderen uit documenten in C#. Laten we nu een sprong maken om snel iets te zien over een Java API waarmee u op verschillende manieren watermerken kunt toevoegen, zoeken en verwijderen uit verschillende documenten.

Java API voor watermerken en verwijderen

GroupDocs.Watermark for Java API ondersteunt het toevoegen van tekst- en afbeeldingswatermerken aan een breed scala aan documentindelingen. Bovendien heeft het ook de mogelijkheid om watermerken uit de documenten te vinden en te verwijderen. De API vindt ook de watermerkobjecten die zijn toegevoegd met behulp van tools van derden. Dus laat me demonstreren hoe je in Java in een paar stappen het watermerk uit een document kunt verwijderen.

U kunt de JAR verkrijgen via de sectie downloads, of u kunt de volgende configuratie toevoegen in pom.xml van uw op Maven gebaseerde Java-toepassing. Ga voor API-details naar API-referentie.

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

Stappen om watermerken uit een document in Java te verwijderen

Bekijk voordat we beginnen het volgende PDF-document dat zowel een tekstwatermerk als een afbeeldingswatermerk bevat. We gebruiken dit document en verwijderen de watermerken ervan.

PDF-bestand met watermerken - GroupDocs
  1. Maak een nieuw project aan.

  2. Voeg de volgende import toe.

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;
  1. Maak een instantie van de klasse Watermarker en laad het brondocument.
Watermarker watermarker = new Watermarker("filepath/watermarked.pdf");
  1. Zoek de watermerken op basis van de geconfigureerde zoekcriteria met behulp van de zoekmethode.
// Configureer zoekcriterium voor afbeeldingswatermerk
ImageSearchCriteria imageSearchCriteria = new ImageDctHashSearchCriteria("filepath/watermark.png");
imageSearchCriteria.setMaxDifference(0.2); // Set how much the watermark can differ from the provided image.

// Configureer zoekcriterium voor tekstwatermerk
TextSearchCriteria textSearchCriteria = new TextSearchCriteria("CONFIDENTIAL");

// De zoekcriteria voor tekst en afbeeldingen combineren
SearchCriteria combinedSearchCriteria = imageSearchCriteria.or(textSearchCriteria);
PossibleWatermarkCollection possibleWatermarks = watermarker.search(combinedSearchCriteria);
  1. Herhaal de verzameling watermerken en verwijder watermerken met de methode removeAt.
//Doorloop de mogelijke verzameling watermerken, controleer en verwijder watermerken
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.");
	}
} 
  1. Sla het resulterende document op met behulp van de opslagmethode.
 watermarker.save("filepath/without_watermark.pdf");
 watermarker.close(); 

Er zijn ook enkele andere manieren om watermerken op verschillende manieren uit documenten te vinden en te verwijderen. Als u alle watermerken van een document wilt verwijderen of een aantal selectieve watermerken van verschillende soorten wilt verwijderen:

  • U kunt alle mogelijke watermerken verzamelen.
  • Herhaal de watermerkverzameling of krijg rechtstreeks toegang tot het watermerk met index.
  • Controleer indien nodig op watermerktype en gegevens.
  • Verwijder het, als het aan uw eisen voldoet.

remove, removeAt en clear zijn de methoden die dienovereenkomstig kunnen worden gebruikt voor het verwijderen van watermerken. Voor meer informatie kunt u het documentatieartikel over watermerken zoeken en wijzigen in Java bezoeken.

Volledige code

// Zoek en verwijder watermerken uit PDF-, Word-, Excel-, PowerPoint- en Visio-documenten in Java
Watermarker watermarker = new Watermarker("filepath/watermarked.pdf"); // Provide any supported document

// Configureer zoekcriterium voor afbeeldingswatermerk
ImageSearchCriteria imageSearchCriteria = new ImageDctHashSearchCriteria("filepath/watermark.png");
imageSearchCriteria.setMaxDifference(0.2); // Set how much the watermark can differ from the provided image.

// Configureer zoekcriterium voor tekstwatermerk
TextSearchCriteria textSearchCriteria = new TextSearchCriteria("CONFIDENTIAL");

// De zoekcriteria voor tekst en afbeeldingen combineren
SearchCriteria combinedSearchCriteria = imageSearchCriteria.or(textSearchCriteria);
PossibleWatermarkCollection possibleWatermarks = watermarker.search(combinedSearchCriteria);

//Doorloop de mogelijke verzameling watermerken, controleer en verwijder watermerken
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(); 

Resultaten

Het volgende is de schermafbeelding van het resulterende PDF-document dat we krijgen na het verwijderen van de watermerken.

Resulterend PDF-bestand na verwijdering van watermerken met behulp van Watermarking Java API door GroupDocs

Conclusie

Ik geloof dat u als Java-ontwikkelaar niet meer zult aarzelen om watermerken van door Microsoft en OpenOffice ondersteunde tekstverwerkingsdocumenten, spreadsheets, presentaties, PDF-documenten en Visio-tekeningen te vinden en vervolgens te verwijderen.

U kunt meer informatie over de API vinden in de documentatie. Voor vragen kun je ons bereiken op forum.

Zie ook