آثار ناخواستهٔ واترمارک تصویری می‌توانند اسناد PDF را غیرحرفه‌ای جلوه دهند و پردازش‌های بعدی را مختل کنند. GroupDocs.Watermark Cloud SDK for Java یک API قدرتمند ارائه می‌دهد که به توسعه‌دهندگان جاوا امکان می‌دهد به‌صورت برنامه‌نویسی این واترمارک‌ها را از فایل‌های PDF حذف کنند. این راهنما نشان می‌دهد چگونه حذف واترمارک تصویری از PDF در جاوا را با استفاده از نقطهٔ پایان حذف SDK انجام دهید. در پایان، قادر خواهید بود حذف خودکار واترمارک را در هر برنامهٔ جاوا یکپارچه کنید.

محیط توسعه جاوا - پیش‌نیازها و راه‌اندازی

قبل از شروع، مطمئن شوید که موارد زیر را دارید:

  • جاوا 17 یا بالاتر نصب شده باشد.
  • Maven یا Gradle برای مدیریت وابستگی‌ها.
  • یک حساب GroupDocs Cloud با client ID و client secret.

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 در جاوا

مرحله 1: بارگذاری سند منبع

ابتدا PDF مورد نظر خود را برای پاک‌سازی مشخص کنید. شی FileInfo به API می‌گوید فایل کجا قرار دارد و به‌صورت اختیاری یک رمز عبور فراهم می‌کند.

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

مرحله ۲: تعریف معیارهای واترمارک تصویر

یک ImageSearchCriteria ایجاد کنید که به تصویر واترمارکی که می‌خواهید حذف کنید اشاره داشته باشد. این هستهٔ عملیات حذف واترمارک تصویر از PDF در جاوا است.

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 من با رمز عبور محافظت شده باشد چه می‌شود؟
    قبل از فراخوانی API حذف، رمز عبور را بر روی شیء FileInfo تنظیم کنید (inputFile.setPassword("yourPassword")). SDK به‌صورت خودکار فایل را رمزگشایی، پردازش و دوباره رمزنگاری می‌کند.

  • آیا می‌توانم واترمارک‌ها را از فرمت‌های دیگر، مانند DOCX?
    بله. همان API برای هر فرمت پشتیبانی‌شده توسط GroupDocs.Watermark کار می‌کند. فقط پسوندهای filePath و outputPath را متناسب با آن تغییر دهید.

  • آیا محدودیتی برای اندازه PDF که می‌توانم پردازش کنم وجود دارد؟
    سرویس ابری فایل‌ها را تا ۵۰۰ مگابایت در هر درخواست مدیریت می‌کند. برای اسناد بزرگ‌تر، در نظر بگیرید که PDF را به بخش‌های کوچکتر تقسیم کنید قبل از پردازش.

بیشتر بخوانید