هذه المقالة مفيدة لمطوري Java الذين يبحثون عن طريقة للعثور على نص أو علامات مائية للصور وإزالتها من مستندات PDF و Word و Excel و PowerPoint و Visio. في إحدى منشوراتنا ، تعلمنا البحث عن العلامات المائية وإزالتها من المستندات في C #. دعنا الآن ننتقل بسرعة لنرى قليلاً عن Java API التي تسمح بإضافة العلامات المائية والعثور عليها وإزالتها من المستندات المختلفة بطرق مختلفة.

Java API للعلامات المائية والإزالة

GroupDocs.Watermark for Java تدعم واجهة برمجة التطبيقات إضافة نص وعلامات مائية للصور إلى مجموعة كبيرة من تنسيقات المستندات. بالإضافة إلى ذلك ، لديه أيضًا القدرة على البحث عن العلامات المائية وإزالتها من المستندات. تبحث API أيضًا عن كائنات العلامة المائية التي تمت إضافتها باستخدام أدوات الجهات الخارجية. لذلك اسمحوا لي أن أوضح كيف يمكنك إزالة العلامة المائية من مستند في بضع خطوات في Java.

يمكنك الحصول على JAR من قسم التنزيلات ، أو إضافة التكوين التالي في pom.xml لتطبيق Java المستند إلى Maven. للحصول على تفاصيل API ، قم بزيارة مرجع 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>

خطوات إزالة العلامات المائية من مستند في Java

قبل أن نبدأ ، ألق نظرة على مستند PDF التالي الذي يحتوي على علامة مائية نصية بالإضافة إلى علامة مائية للصورة. سنستخدم هذا المستند ونزيل العلامات المائية منه.

ملف PDF به علامات مائية - GroupDocs
  1. إنشاء مشروع جديد.

  2. أضف الواردات التالية.

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. قم بإنشاء مثيل لفئة Watermarker وقم بتحميل المستند المصدر.
Watermarker watermarker = new Watermarker("filepath/watermarked.pdf");
  1. ابحث عن العلامات المائية بناءً على معايير البحث المكونة باستخدام طريقة البحث.
// تكوين معيار البحث للصورة العلامة المائية
ImageSearchCriteria imageSearchCriteria = new ImageDctHashSearchCriteria("filepath/watermark.png");
imageSearchCriteria.setMaxDifference(0.2); // Set how much the watermark can differ from the provided image.

// تكوين معيار البحث عن نص العلامة المائية
TextSearchCriteria textSearchCriteria = new TextSearchCriteria("CONFIDENTIAL");

// الجمع بين معايير البحث عن النص والصورة
SearchCriteria combinedSearchCriteria = imageSearchCriteria.or(textSearchCriteria);
PossibleWatermarkCollection possibleWatermarks = watermarker.search(combinedSearchCriteria);
  1. كرر مجموعة العلامات المائية وأزل العلامات المائية باستخدام طريقة removeAt.
//كرر من خلال جمع العلامات المائية الممكنة وفحصها وإزالتها
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. حفظ المستند الناتج باستخدام طريقة الحفظ.
 watermarker.save("filepath/without_watermark.pdf");
 watermarker.close(); 

هناك أيضًا بعض الطرق الأخرى للعثور على العلامات المائية وإزالتها من المستندات باستخدام طرق مختلفة. إذا كنت تريد إزالة جميع العلامات المائية لمستند ، أو تريد التخلص من بعض العلامات المائية الانتقائية من أنواع مختلفة:

  • يمكنك جمع كل العلامات المائية الممكنة.
  • كرر مجموعة العلامات المائية أو قم بالوصول مباشرة إلى العلامة المائية باستخدام الفهرس.
  • تحقق من نوع العلامة المائية والبيانات ، إذا لزم الأمر.
  • قم بإزالته ، إذا كان يلبي متطلباتك.

إزالة ، إزالة ، ومسح هي الطرق التي يمكن استخدامها وفقًا لذلك لإزالة العلامات المائية. لمزيد من التفاصيل ، يمكنك زيارة مقالة التوثيق حول البحث عن العلامات المائية وتعديلها في Java.

كود كامل

// البحث عن العلامات المائية وإزالتها من مستندات PDF و Word و Excel و PowerPoint و Visio في Java
Watermarker watermarker = new Watermarker("filepath/watermarked.pdf"); // Provide any supported document

// تكوين معيار البحث للصورة العلامة المائية
ImageSearchCriteria imageSearchCriteria = new ImageDctHashSearchCriteria("filepath/watermark.png");
imageSearchCriteria.setMaxDifference(0.2); // Set how much the watermark can differ from the provided image.

// تكوين معيار البحث عن نص العلامة المائية
TextSearchCriteria textSearchCriteria = new TextSearchCriteria("CONFIDENTIAL");

// الجمع بين معايير البحث عن النص والصورة
SearchCriteria combinedSearchCriteria = imageSearchCriteria.or(textSearchCriteria);
PossibleWatermarkCollection possibleWatermarks = watermarker.search(combinedSearchCriteria);

//كرر من خلال جمع العلامات المائية الممكنة وفحصها وإزالتها
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(); 

نتائج

فيما يلي لقطة شاشة لمستند PDF الناتج الذي نحصل عليه بعد إزالة العلامات المائية.

ملف PDF الناتج بعد إزالة العلامات المائية باستخدام Watermarking Java API بواسطة GroupDocs

استنتاج

أعتقد ، بصفتك مطور Java ، أنك لن تتردد في العثور على أي نوع من العلامات المائية ثم إزالتها من مستندات معالجة الكلمات وجداول البيانات والعروض التقديمية ومستندات PDF ورسومات Visio المدعومة من Microsoft و OpenOffice.

يمكنك استكشاف المزيد حول API من التوثيق. في حال وجود أي استفسار تواصل معنا على @ forum.

أنظر أيضا