Dieser Artikel ist nützlich für Java-Entwickler, die nach einer Möglichkeit suchen, Text oder Bildwasserzeichen aus PDF, Word, Excel, PowerPoint und **Visio zu **finden und zu entfernen ** Dokumente. In einem unserer Beiträge haben wir gelernt Wasserzeichen aus Dokumenten in C# zu finden und zu entfernen. Lassen Sie uns nun schnell ein wenig über eine Java-API erfahren, die das Hinzufügen, Suchen und Entfernen von Wasserzeichen aus verschiedenen Dokumenten auf unterschiedliche Weise ermöglicht.
Java-API für Wasserzeichen und Entfernung
GroupDocs.Watermark for Java API unterstützt das Hinzufügen von Text- und Bildwasserzeichen zu einer Vielzahl von Dokumentformaten. Darüber hinaus hat es auch die Fähigkeit, Wasserzeichen aus den Dokumenten zu finden und zu entfernen. Die API findet auch die Wasserzeichenobjekte, die mit den Tools von Drittanbietern hinzugefügt wurden. Lassen Sie mich also demonstrieren, wie Sie das Wasserzeichen in Java in wenigen Schritten aus einem Dokument entfernen können.
Sie können die JAR-Datei aus dem Abschnitt downloads herunterladen oder die folgende Konfiguration in pom.xml Ihrer Maven-basierten Java-Anwendung hinzufügen. Einzelheiten zur API finden Sie unter API-Referenz.
<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>
Schritte zum Entfernen von Wasserzeichen aus einem Dokument in Java
Bevor wir beginnen, werfen Sie einen Blick auf das folgende PDF-Dokument, das sowohl ein Textwasserzeichen als auch ein Bildwasserzeichen enthält. Wir verwenden dieses Dokument und entfernen die Wasserzeichen daraus.
1. Erstellen Sie ein neues Projekt.
2. Fügen Sie die folgenden Importe hinzu.
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. Erstellen Sie eine Instanz der Watermarker-Klasse und laden Sie das Quelldokument.
Watermarker watermarker = new Watermarker("filepath/watermarked.pdf");
4. Finden Sie die Wasserzeichen basierend auf den konfigurierten Suchkriterien mit der Suchmethode.
// Suchkriterium für Bildwasserzeichen konfigurieren
ImageSearchCriteria imageSearchCriteria = new ImageDctHashSearchCriteria("filepath/watermark.png");
imageSearchCriteria.setMaxDifference(0.2); // Set how much the watermark can differ from the provided image.
// Suchkriterium für Textwasserzeichen konfigurieren
TextSearchCriteria textSearchCriteria = new TextSearchCriteria("CONFIDENTIAL");
// Kombinieren der Text- und Bildsuchkriterien
SearchCriteria combinedSearchCriteria = imageSearchCriteria.or(textSearchCriteria);
PossibleWatermarkCollection possibleWatermarks = watermarker.search(combinedSearchCriteria);
5. Durchlaufen Sie die Wasserzeichensammlung und entfernen Sie Wasserzeichen mit der Methode removeAt.
//Iterieren Sie durch die mögliche Sammlung von Wasserzeichen, prüfen und entfernen Sie Wasserzeichen
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. Speichern Sie das resultierende Dokument mit der Methode save.
watermarker.save("filepath/without_watermark.pdf");
watermarker.close();
Es gibt auch einige andere Möglichkeiten zum Suchen und Entfernen von Wasserzeichen aus Dokumenten mit verschiedenen Methoden. Wenn Sie alle Wasserzeichen eines Dokuments entfernen möchten oder einige selektive Wasserzeichen verschiedener Art entfernen möchten:
- Sie können alle möglichen Wasserzeichen sammeln.
- Iterieren Sie über die Wasserzeichensammlung oder greifen Sie direkt auf das Wasserzeichen mit Index zu.
- Überprüfen Sie bei Bedarf den Wasserzeichentyp und die Daten.
- Entfernen Sie es, wenn es Ihren Anforderungen entspricht.
remove, removeAt und clear sind die Methoden, die entsprechend zum Entfernen von Wasserzeichen verwendet werden können. Weitere Einzelheiten finden Sie im Dokumentationsartikel über Suchen und Ändern von Wasserzeichen in Java.
Vollständiger Code
// Suchen und entfernen Sie Wasserzeichen aus PDF-, Word-, Excel-, PowerPoint- und Visio-Dokumenten in Java
Watermarker watermarker = new Watermarker("filepath/watermarked.pdf"); // Provide any supported document
// Suchkriterium für Bildwasserzeichen konfigurieren
ImageSearchCriteria imageSearchCriteria = new ImageDctHashSearchCriteria("filepath/watermark.png");
imageSearchCriteria.setMaxDifference(0.2); // Set how much the watermark can differ from the provided image.
// Suchkriterium für Textwasserzeichen konfigurieren
TextSearchCriteria textSearchCriteria = new TextSearchCriteria("CONFIDENTIAL");
// Kombinieren der Text- und Bildsuchkriterien
SearchCriteria combinedSearchCriteria = imageSearchCriteria.or(textSearchCriteria);
PossibleWatermarkCollection possibleWatermarks = watermarker.search(combinedSearchCriteria);
//Iterieren Sie durch die mögliche Sammlung von Wasserzeichen, prüfen und entfernen Sie Wasserzeichen
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();
Ergebnisse
Das Folgende ist der Screenshot des resultierenden PDF-Dokuments, das wir nach dem Entfernen der Wasserzeichen erhalten.
Fazit
Ich glaube, als Java-Entwickler werden Sie nicht mehr zögern, jede Art von Wasserzeichen aus von Microsoft und OpenOffice unterstützten Textverarbeitungsdokumenten, Tabellenkalkulationen, Präsentationen, PDF-Dokumente und Visio-Zeichnungen.
Weitere Informationen zur API finden Sie in der Dokumentation. Bei Fragen erreichen Sie uns unter @ forum.