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

بيئة تطوير Java - المتطلبات والإعداد

قبل أن تبدأ، تأكد من أن لديك ما يلي:

  • تم تثبيت Java 17 أو أعلى.
  • Maven أو Gradle لإدارة التبعيات.
  • حساب GroupDocs Cloud مع معرف العميل و سر العميل.

أضف SDK إلى مشروعك باستخدام تبعية Maven أدناه (يمكنك أيضًا استخدام ما يعادلها في Gradle). أحدث الملفات الثنائية متاحة على صفحة التحميل.

<dependency>
    <groupId>com.groupdocs</groupId>
    <artifactId>groupdocs-watermark-cloud</artifactId>
    <version>23.8</version>
</dependency>

قم بتهيئة عميل API باستخدام بيانات الاعتماد الخاصة بك. تم أخذ هذا المقتطف مباشرةً من كود العينة.

ApiClient apiClient = new ApiClient("YOUR_CLIENT_ID", "YOUR_CLIENT_SECRET");
WatermarkApi watermarkApi = new WatermarkApi(apiClient);

مع جاهزية العميل، يمكنك الانتقال إلى سير عمل الإزالة الفعلي.

دليل خطوة بخطوة لإزالة علامة مائية صورة من PDF في Java

الخطوة 1: تحميل المستند المصدر

أولاً، حدد ملف PDF الذي تريد تنظيفه. كائن FileInfo يخبر API بمكان وجود الملف ويزود كلمة مرور اختيارية.

FileInfo inputFile = new FileInfo();
inputFile.setFilePath("input.pdf");
// inputFile.setPassword("pdfPassword"); // Uncomment if needed

الخطوة 2: تحديد معايير العلامة المائية للصورة

إنشاء ImageSearchCriteria يشير إلى صورة العلامة المائية التي ترغب في حذفها. هذا هو جوهر عملية إزالة علامة مائية صورة من PDF في Java.

ImageSearchCriteria imageCriteria = new ImageSearchCriteria();
imageCriteria.setImagePath("watermark.png");

الخطوة 3: إعداد خيارات الإزالة

اجمع معلومات الملف ومعايير البحث في كائن RemoveOptions. كما تحدد مكان حفظ ملف PDF المنظف.

RemoveOptions removeOptions = new RemoveOptions();
removeOptions.setFileInfo(inputFile);
removeOptions.setOutputPath("output.pdf");
removeOptions.setSearchCriteria(Collections.singletonList(imageCriteria));

الخطوة 4: تنفيذ استدعاء الإزالة

استدعِ طريقة remove على WatermarkApi. تُعيد الاستدعاء كائن RemoveResult يحتوي على المسار إلى الملف المعالج.

RemoveResult result = watermarkApi.remove(removeOptions);
System.out.println("Watermark removal completed. Output file: " + result.getPath());

الخطوة 5: معالجة النتيجة

تعامل مع أي استثناءات قد تحدث. يطرح SDK الاستثناء ApiException لأخطاء جانب الخدمة والاستثناء العام Exception للمشكلات غير المتوقعة.

try {
    // removal code above
} catch (ApiException e) {
    System.err.println("API exception occurred: " + e.getMessage());
} catch (Exception e) {
    System.err.println("Unexpected error: " + e.getMessage());
}

مثال كامل للكود: إزالة علامة مائية من الصورة باستخدام GroupDocs

يوضح المثال التالي سير العمل الكامل من تهيئة العميل إلى معالجة النتيجة.

import com.groupdocs.watermark.cloud.api.WatermarkApi;
import com.groupdocs.watermark.cloud.client.ApiClient;
import com.groupdocs.watermark.cloud.client.ApiException;
import com.groupdocs.watermark.cloud.model.FileInfo;
import com.groupdocs.watermark.cloud.model.ImageSearchCriteria;
import com.groupdocs.watermark.cloud.model.RemoveOptions;
import com.groupdocs.watermark.cloud.model.RemoveResult;
import java.util.Collections;

public class RemoveImageWatermarkFromPdf {
    public static void main(String[] args) {
        // Initialize API client with your credentials
        ApiClient apiClient = new ApiClient("YOUR_CLIENT_ID", "YOUR_CLIENT_SECRET");
        WatermarkApi watermarkApi = new WatermarkApi(apiClient);

// Prepare input file information
        FileInfo inputFile = new FileInfo();
        inputFile.setFilePath("input.pdf");
        // If the PDF is password protected, uncomment the following line and set the password
        // inputFile.setPassword("pdfPassword");

// Define the image watermark to be removed
        ImageSearchCriteria imageCriteria = new ImageSearchCriteria();
        imageCriteria.setImagePath("watermark.png");

// Set up removal options
        RemoveOptions removeOptions = new RemoveOptions();
        removeOptions.setFileInfo(inputFile);
        removeOptions.setOutputPath("output.pdf");
        removeOptions.setSearchCriteria(Collections.singletonList(imageCriteria));

try {
            // Execute removal
            RemoveResult result = watermarkApi.remove(removeOptions);
            System.out.println("Watermark removal completed. Output file: " + result.getPath());
        } catch (ApiException e) {
            System.err.println("API exception occurred: " + e.getMessage());
        } catch (Exception e) {
            System.err.println("Unexpected error: " + e.getMessage());
        }
    }
}

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

عملية إزالة العلامة المائية عبر REST API باستخدام cURL

إذا كنت تفضل نهج REST النقي، يمكن تنفيذ العملية نفسها باستخدام أوامر cURL.

  1. المصادقة والحصول على رمز الوصول
curl -X POST "https://api.groupdocs.cloud/v2.0/auth/token" \
     -H "Content-Type: application/json" \
     -d '{"client_id":"YOUR_CLIENT_ID","client_secret":"YOUR_CLIENT_SECRET"}'
  1. تحميل ملف PDF المصدر
curl -X POST "https://api.groupdocs.cloud/v2.0/storage/upload?path=input.pdf" \
     -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
     -F "file=@/local/path/input.pdf"
  1. تنفيذ إزالة العلامة المائية
curl -X POST "https://api.groupdocs.cloud/v2.0/watermark/remove" \
     -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
     -H "Content-Type: application/json" \
     -d '{
           "fileInfo": {"filePath":"input.pdf"},
           "outputPath":"output.pdf",
           "searchCriteria":[{"type":"Image","imagePath":"watermark.png"}]
         }'
  1. تحميل ملف PDF المنقّح
   curl -X GET "https://api.groupdocs.cloud/v2.0/storage/download?path=output.pdf" \
        -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
        -o output.pdf

للحصول على مرجع كامل، راجع توثيق API.

خيارات إزالة الضبط الدقيق

يوفر SDK عدة خصائص يمكنك تعديلها لتناسب سيناريوهات مختلفة.

  • حماية كلمة المرور - إذا كان ملف PDF المصدر مشفراً، قم بتعيين كلمة المرور على FileInfo.
  inputFile.setPassword("mySecret");
  • معايير البحث المتعددة - إزالة عدة علامات مائية في استدعاء واحد عن طريق إضافة المزيد من كائنات ImageSearchCriteria إلى القائمة.
  ImageSearchCriteria logoCriteria = new ImageSearchCriteria();
  logoCriteria.setImagePath("logo.png");
  removeOptions.setSearchCriteria(Arrays.asList(imageCriteria, logoCriteria));
  • تنسيق الإخراج - على الرغم من أن الإعداد الافتراضي هو PDF، يمكنك تغيير تنسيق الإخراج عن طريق تعيين outputPath بامتداد مختلف (على سبيل المثال، output.docx).
  removeOptions.setOutputPath("output.docx");

تتيح لك هذه الخيارات تخصيص عملية إزالة علامة مائية صورة من PDF في Java وفقًا لاحتياجاتك الدقيقة.

الخاتمة

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

الأسئلة الشائعة

  • كيف يمكنني إزالة علامة مائية صورة من PDF في Java؟
    استخدم طريقة remove من WatermarkApi مع ImageSearchCriteria التي تشير إلى صورة العلامة المائية. يوضح مثال الشيفرة الكامل في هذه المقالة الخطوات الدقيقة.

  • ماذا لو كان ملف PDF محميًا بكلمة مرور؟
    قم بتعيين كلمة المرور على كائن FileInfo (inputFile.setPassword("yourPassword")) قبل استدعاء واجهة إزالة الحماية. سيقوم SDK بفك التشفير ومعالجة الملف وإعادة تشفيره تلقائيًا.

  • هل يمكنني إزالة العلامات المائية من صيغ أخرى، مثل DOCX?
    نعم. نفس واجهة برمجة التطبيقات تعمل مع أي صيغة يدعمها GroupDocs.Watermark. فقط قم بتغيير امتدادات filePath و outputPath وفقًا لذلك.

  • هل هناك حدود لحجم ملف PDF الذي يمكنني معالجته؟
    تتعامل خدمة السحابة مع الملفات حتى 500 ميغابايت لكل طلب. بالنسبة للمستندات الأكبر، يُنصح بتقسيم ملف PDF إلى أجزاء أصغر قبل المعالجة.

اقرأ المزيد