Tento článek je užitečný pro vývojáře v jazyce Java, kteří hledají způsob, jak najít a odstranit textové nebo obrázkové vodoznaky z dokumentů PDF, Word, Excel, PowerPoint a Visio. V jednom z našich příspěvků jsme se naučili najít a odstranit vodoznaky z dokumentů v C#. Pojďme se nyní rychle podívat na něco málo o Java API, které umožňuje přidávat, vyhledávat a odstraňovat vodoznaky z různých dokumentů různými způsoby.
Java API pro vodoznak a odstranění
GroupDocs.Watermark for Java API podporuje přidávání textových a obrazových vodoznaků do široké škály formátů dokumentů. Kromě toho má také schopnost najít a odstranit vodoznaky z dokumentů. Rozhraní API také najde objekty vodoznaku, které jsou přidány pomocí nástrojů třetích stran. Dovolte mi tedy ukázat, jak můžete odstranit vodoznak z dokumentu v několika krocích v Java.
JAR můžete získat ze sekce ke stažení nebo přidat následující konfiguraci do pom.xml vaší Java aplikace založené na Maven. Podrobnosti o rozhraní API naleznete v Odkaz na rozhraní 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>
Kroky k odstranění vodoznaků z dokumentu v Java
Než začneme, podívejte se na následující dokument PDF, který obsahuje textový vodoznak i vodoznak obrázku. Použijeme tento dokument a odstraníme z něj vodoznaky.
-
Vytvořte nový projekt.
-
Přidejte následující importy.
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;
- Vytvořte instanci třídy Watermarker a načtěte zdrojový dokument.
Watermarker watermarker = new Watermarker("filepath/watermarked.pdf");
- Najděte vodoznaky na základě nakonfigurovaných kritérií vyhledávání pomocí metody vyhledávání.
// Nakonfigurujte vyhledávací kritérium pro vodoznak obrázku
ImageSearchCriteria imageSearchCriteria = new ImageDctHashSearchCriteria("filepath/watermark.png");
imageSearchCriteria.setMaxDifference(0.2); // Set how much the watermark can differ from the provided image.
// Nakonfigurujte vyhledávací kritérium pro textový vodoznak
TextSearchCriteria textSearchCriteria = new TextSearchCriteria("CONFIDENTIAL");
// Kombinace kritérií vyhledávání textu a obrázků
SearchCriteria combinedSearchCriteria = imageSearchCriteria.or(textSearchCriteria);
PossibleWatermarkCollection possibleWatermarks = watermarker.search(combinedSearchCriteria);
- Opakujte sbírku vodoznaků a odstraňte vodoznaky pomocí metody removeAt.
//Projděte si možné shromažďování vodoznaků, zkontrolujte a odstraňte vodoznaky
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.");
}
}
- Uložte výsledný dokument pomocí metody uložení.
watermarker.save("filepath/without_watermark.pdf");
watermarker.close();
Existuje také několik dalších způsobů, jak najít a odstranit vodoznak z dokumentů pomocí různých metod. Pokud chcete odstranit všechny vodoznaky dokumentu nebo se chcete zbavit některých selektivních vodoznaků různého druhu:
- Můžete sbírat všechny možné vodoznaky.
- Iterujte sbírku vodoznaků nebo přímo přistupujte k vodoznaku pomocí indexu.
- V případě potřeby zkontrolujte typ vodoznaku a údaje.
- Odstraňte jej, pokud splňuje vaše požadavky.
remove, removeAt a clear jsou metody, které lze odpovídajícím způsobem použít k odstranění vodoznaků. Další podrobnosti najdete v článku dokumentace o vyhledávání a úpravě vodoznaků v Java.
Kompletní kód
// Najděte a odstraňte vodoznaky z dokumentů PDF, Word, Excel, PowerPoint a Visio v Java
Watermarker watermarker = new Watermarker("filepath/watermarked.pdf"); // Provide any supported document
// Nakonfigurujte vyhledávací kritérium pro vodoznak obrázku
ImageSearchCriteria imageSearchCriteria = new ImageDctHashSearchCriteria("filepath/watermark.png");
imageSearchCriteria.setMaxDifference(0.2); // Set how much the watermark can differ from the provided image.
// Nakonfigurujte vyhledávací kritérium pro textový vodoznak
TextSearchCriteria textSearchCriteria = new TextSearchCriteria("CONFIDENTIAL");
// Kombinace kritérií vyhledávání textu a obrázků
SearchCriteria combinedSearchCriteria = imageSearchCriteria.or(textSearchCriteria);
PossibleWatermarkCollection possibleWatermarks = watermarker.search(combinedSearchCriteria);
//Projděte si možné shromažďování vodoznaků, zkontrolujte a odstraňte vodoznaky
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();
Výsledek
Následuje snímek obrazovky výsledného dokumentu PDF, který získáme po odstranění vodoznaků.
Závěr
Věřím, že jako vývojář Java již nebudete váhat s hledáním a následným odstraněním jakéhokoli druhu vodoznaku z dokumentů, tabulek, prezentací, dokumentů PDF a kreseb Visio podporovaných Microsoftem a OpenOffice.
Více o API můžete prozkoumat v dokumentaci. V případě jakýchkoliv dotazů nás kontaktujte @ forum.