Bu makale, PDF, Word, Excel, PowerPoint ve Visio belgelerinden metin veya görüntü filigranlarını bulup kaldırmanın bir yolunu arayan Java geliştiricileri için yararlıdır. Gönderilerimizden birinde C# belgelerinde filigran bulma ve kaldırma öğrendik. Şimdi, çeşitli belgelere farklı şekillerde filigran eklemeye, bulmaya ve kaldırmaya izin veren bir Java API hakkında biraz bilgi edinmek için hızlıca atlayalım.
Filigran Ekleme ve Kaldırma için Java API
GroupDocs.Watermark for Java API, çok çeşitli belge biçimlerine metin ve resim filigranları eklemeyi destekler. Ayrıca belgelerden filigran bulma ve kaldırma özelliğine de sahiptir. API, üçüncü taraf araçlar kullanılarak eklenen filigran nesnelerini de bulur. Java’da birkaç adımda bir belgeden filigranı nasıl kaldırabileceğinizi göstermeme izin verin.
JAR’ı indirilenler bölümünden alabilir veya Maven tabanlı Java uygulamanızın pom.xml dosyasına aşağıdaki yapılandırmayı ekleyebilirsiniz. API ayrıntıları için API Referansı’nı ziyaret edin.
<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>
Java’daki Bir Belgeden Filigranları Kaldırma Adımları
Başlamadan önce, bir metin filigranı ve bir görüntü filigranı içeren aşağıdaki PDF belgesine bir göz atın. Bu belgeyi kullanacağız ve filigranları ondan kaldıracağız.
-
Yeni bir proje oluşturun.
-
Aşağıdaki içe aktarmaları ekleyin.
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;
- Watermarker sınıfının bir örneğini oluşturun ve kaynak belgeyi yükleyin.
Watermarker watermarker = new Watermarker("filepath/watermarked.pdf");
- Arama yöntemini kullanarak yapılandırılmış arama kriterlerine göre filigranları bulun.
// Görüntü filigranı için arama kriterini yapılandırın
ImageSearchCriteria imageSearchCriteria = new ImageDctHashSearchCriteria("filepath/watermark.png");
imageSearchCriteria.setMaxDifference(0.2); // Set how much the watermark can differ from the provided image.
// Metin filigranı için arama ölçütünü yapılandırın
TextSearchCriteria textSearchCriteria = new TextSearchCriteria("CONFIDENTIAL");
// Metin ve resim arama kriterlerini birleştirme
SearchCriteria combinedSearchCriteria = imageSearchCriteria.or(textSearchCriteria);
PossibleWatermarkCollection possibleWatermarks = watermarker.search(combinedSearchCriteria);
- Filigran koleksiyonunu yineleyin ve removeAt yöntemini kullanarak filigranları kaldırın.
//Olası filigran koleksiyonunu yineleyin, filigranları kontrol edin ve kaldırın
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.");
}
}
- Ortaya çıkan belgeyi kaydetme yöntemini kullanarak kaydedin.
watermarker.save("filepath/without_watermark.pdf");
watermarker.close();
Farklı yöntemler kullanarak belgelerden filigran bulmanın ve kaldırmanın başka yolları da vardır. Bir belgenin tüm filigranlarını kaldırmak veya çeşitli türden bazı seçici filigranlardan kurtulmak istiyorsanız:
- Olası tüm filigranları toplayabilirsiniz.
- Filigran koleksiyonu üzerinde yineleme yapın veya filigrana doğrudan dizinle erişin.
- Gerekirse filigran türünü ve verilerini kontrol edin.
- Gereksinimlerinizi karşılıyorsa kaldırın.
remove, removeAt ve clear buna göre filigranların kaldırılması için kullanılabilecek yöntemlerdir. Daha fazla ayrıntı için Java’da filigran arama ve değiştirme hakkındaki belgeleme makalesini ziyaret edebilirsiniz.
Tam Kod
// Java'da PDF, Word, Excel, PowerPoint ve Visio belgelerinden Filigranları Bulun ve Kaldırın
Watermarker watermarker = new Watermarker("filepath/watermarked.pdf"); // Provide any supported document
// Görüntü filigranı için arama kriterini yapılandırın
ImageSearchCriteria imageSearchCriteria = new ImageDctHashSearchCriteria("filepath/watermark.png");
imageSearchCriteria.setMaxDifference(0.2); // Set how much the watermark can differ from the provided image.
// Metin filigranı için arama ölçütünü yapılandırın
TextSearchCriteria textSearchCriteria = new TextSearchCriteria("CONFIDENTIAL");
// Metin ve resim arama kriterlerini birleştirme
SearchCriteria combinedSearchCriteria = imageSearchCriteria.or(textSearchCriteria);
PossibleWatermarkCollection possibleWatermarks = watermarker.search(combinedSearchCriteria);
//Olası filigran koleksiyonunu yineleyin, filigranları kontrol edin ve kaldırın
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();
Sonuçlar
Filigranları kaldırdıktan sonra elde ettiğimiz sonuçtaki PDF belgesinin ekran görüntüsü aşağıdadır.
Çözüm
Bir Java geliştiricisi olarak, Microsoft ve OpenOffice destekli kelime işlem belgeleri, elektronik tablolar, sunumlar, PDF belgeleri ve Visio çizimlerinden her türlü filigranı bulup kaldırmakta artık tereddüt etmeyeceğinize inanıyorum.
Belgelerden API hakkında daha fazla bilgi edinebilirsiniz. Herhangi bir sorunuz olması durumunda bize @ forum adresinden ulaşın.